Comment detecter les imbrications avec preg_match_all ? - PHP - Programmation
Marsh Posté le 02-01-2006 à 21:13:05
Je ne pense pas que ce soit possible simplement avec une syntax particuliere de masque ou une option de fonctionnement passée a preg_match_all.
A priori : un algo pour traiter les resultats recursivement
Marsh Posté le 02-01-2006 à 21:15:57
Autre solution, si tu connais le nombre max d'encapsulation (n encapsulations) tu peux faire n appels a preg_match_all chacun ne capturant qu'un seul niveau d'encapsulation grace aux assertions positives/negatives avant/arrieres.
Marsh Posté le 02-01-2006 à 22:03:22
Je ne connais pas à l'avance le nombre max d'encapsulation. Donc j'ai fais une boucle.
Si le masque est trouvé, on stock le contenu, et on relance la fonction sur ce contenu, et ainsi de suite
Merci
++
Marsh Posté le 02-01-2006 à 20:48:21
Bonsoir à tous,
Une des particularités de preg_match_all() est de detecter toutes les occurences qui conviennent au masque.
Donc par exemple si je fais un masque pour detecter les balises de la forme <...>...</...> et que j'ai ça :
<foo>blablabla</foo>
<bar>blablabla</bar>
Il va bien me détecter les 2.
Le problème est que si j'ai ça :
<foo>blabla<bar>blabla</bar>blabla</foo>
Il ne me detecte que <foo> car <bar> est inclus dedans.
Existe-t-il un moyen de faire détecter tous les blocs qui correspondent au masque ?
Merci
Message édité par Dj YeLL le 02-01-2006 à 20:48:40
---------------
Gamertag: CoteBlack YeLL