[RegExp] Problème avec une REGEXP
Bonjour à tous.
Voila mon problème :
Immaginons la chaine de caractères suivante :
Code:
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">'; |
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:
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); |
Seulement, il faudrait que je puisse dire à la REGEXP que dans
<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 !