Bonjour à tous.
Voila mon problème :
Immaginons la chaine de caractères suivante :
Je voudrais pouvoir récupérer l'id de n'importe quel cat parent d'un autre. Par exemple, pour récupérer l'id de l'élément parent de la cat d'id 3 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $structure = ' <cat id="5" valid="1"> </cat id="5"> <cat id="2" valid="1"> <cat id="3" valid="1"> </cat id="3"> <cat id="4" valid="0"> </cat id="4"> </cat id="2">';
Seulement, il faudrait que je puisse dire à la REGEXP que dans
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $id = 3; //la cat d'id 3 $idsup = preg_replace('!<cat[\s]+id="(\d+)"[\s\S]+<cat[\s]+id="'.$id.'"[\s\S]+</cat id="'.$id.'"[\s\S]+</cat[\s]+id="\d+">!sU','$1',$structure);
<cat[\s]+id="(\d+)"
et
</cat[\s]+id="\d+">
Le \d+ est le même nombre. Mais bien sur, je ne connais pas ce nombre car c'est celui que je cherche...
Merci de m'éclairer, j'ai vraiment besoin de cette regexp (d'ailleurs, il faudra peut-être utiliser un preg_match_all non ??).
Finalement, j'ai repensé l'organisation de la chaine de caractères (qui est un fichier en fait), et je n'ai plus besoin de cette RegExp. OUF !
Partager