Salut,
Dans le premier cas tu recherches qqch qui 1. commence par <foo 2. qui est suivit de caract�res (.*) 3. suivit de "hello" 4. suivi de caract�res (.*) 5. termin� par </foo>
Dans le second cas: 1. commence par <foo 2. qui est suivit de caract�res (.*) 3. suivit de go 4. suivi de caract�res (.*) 5. termin� par </foo>
Il est clair que cel� va fonctionner pour tout $str. php ne va pas faire attention au fait que tu fermes ton tag.
Il applique la recherche � toute la variable. Et il trouve ce qu'il cherche m�me s'il y a une possibilit� + petite (en taille).
Tant que tu n'as pas de tag � plusieurs niveau (<foo><foo2>kldsflkjf</foo2></foo>) tu devrais s�parer $str (en deux dans ton exemples). Et ensuite appliquer ta recherche.
N'y a-t-il pas de parser XML dans php?
Bonne journ�e
Magnus
patrick jayet wrote:
Bonsoir � tous!
Petite question sur les expressions r�guli�res sous php. J'ai un petit probl�me avec la "greediness" du processing. Voici le code:
$str = "<foo>hello there</foo>\n<foo>go there</foo>\n"; echo $str;
<foo>hello there</foo> <foo>go there</foo>
$str1 = preg_replace("%<foo.*hello.*</foo>%Us","replaced1", $str); echo $str1;
replaced1 <foo>go there</foo>
$str2 = preg_replace("%<foo.*go.*</foo>%Us","replaced2", $str); echo $str2;
replaced2
Je ne comprend pas pourquoi j'obtiens 2 choses diff�rentes suivant que je fait un match du 1e tag <foo></foo> ou du 2e. L'option U est sens� d�sactiver le greediness (ce qui est bien le cas lors de la 1e substitution). Mais pour la 2e, �a ne semble pas marcher.
Quelqu'un aurait-il une id�e?
Bon week-end!
Pat
_______________________________________________ gull mailing list [EMAIL PROTECTED] http://lists.alphanet.ch/mailman/listinfo/gull
_______________________________________________ gull mailing list [EMAIL PROTECTED] http://lists.alphanet.ch/mailman/listinfo/gull
