LocalStone
Messages postés514Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 1 mars 2009
-
25 oct. 2004 à 02:54
LocalStone
Messages postés514Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 1 mars 2009
-
25 oct. 2004 à 12:59
'soir !
Voilà, je cherche à parser les attributs d'une balise XML. C'est assez simple, grâce au pattern suivant :
$pattern = '/(.+?)=("|\')(.+?)(\\2)/i';
.
Le problème, est que si la valeur de l'attribut est une chaine de caractère qui contient un " ou un ' backslashé, le parseur va croire que la chaine est terminée. Alors comment peut-on faire pour inclure une sorte de test pour verifier si dans la valeur, il y a un backslahe ou pas ...
J'suis un peu fatigué, alors j'espère m'être bien fait comprendre ... Désolé ...
LocalStone :big)
ehmarc
Messages postés393Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention29 septembre 2008 25 oct. 2004 à 08:59
Salut
pour savoir si il ya un / dans ta chaine il suffit d'utiliser un explode
Si separator est une chaîne vide (""), explode retournera FALSE . Si separator contient une valeur qui n'est pas contenue dans string , alors explode retournera un tableau, contenant la chaîne string entière.
donc si le retour du explode est égale à ta chaine ya pas de backslashe
a la prochaine
++
"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller" 8-)
LocalStone
Messages postés514Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 1 mars 2009 25 oct. 2004 à 12:59
Alors, oui, oui, oui mais non ...
En fait, j'ai déjà créé une fonction qui me permet de remplacer les " backslashés par un truc du style {double} pour travailler sur la chaine et ensuite replacer les ".
Mais en fait, je cercher un pattern qui m'évite de passer par cette fastidieuse étape.
Donc ta solution ne vas pas ... Désolé. :(, mais merci quand même !
LocalStone :big)