CrazyCat
2007-12-17 21:41:48 UTC
Bonjour à tous,
j'ai un petit soucis pour faire une regexp, je ne sais même pas si c'est
possible sans utiliser une fonction.
Le but est de retrouver des blocs de contenus (un pseudo moteur de
template).
Le template:
$template = 'texte ici
<bloc_1>je suis dans le bloc 1
<bloc_2>Je suis dans le bloc 2
<bloc_3>Je suis dans le bloc 3</bloc_3>
Je suis sorti du bloc 3
</bloc_2>
Je suis sorti du bloc 2
<bloc_4>
je suis dans le bloc 4
<bloc_4>
</bloc_1>
Je suis sorti du bloc 1';
Une regexp du type:
$pattern = "!<bloc_([^>])+>(.*)<\/bloc_\\1>!Usm" ne ressort que le bloc
1 avec un preg_match_all,
$pattern = "!<bloc_([^>])+>([^<]*)<\/bloc_\\1>!Usm" ne renvoit que le
bloc 3...
Y'a-t-il un moyen, sans passer par une fonction récursive, d'extraire
tous les blocs (du plus petit au plus grand)?
j'ai un petit soucis pour faire une regexp, je ne sais même pas si c'est
possible sans utiliser une fonction.
Le but est de retrouver des blocs de contenus (un pseudo moteur de
template).
Le template:
$template = 'texte ici
<bloc_1>je suis dans le bloc 1
<bloc_2>Je suis dans le bloc 2
<bloc_3>Je suis dans le bloc 3</bloc_3>
Je suis sorti du bloc 3
</bloc_2>
Je suis sorti du bloc 2
<bloc_4>
je suis dans le bloc 4
<bloc_4>
</bloc_1>
Je suis sorti du bloc 1';
Une regexp du type:
$pattern = "!<bloc_([^>])+>(.*)<\/bloc_\\1>!Usm" ne ressort que le bloc
1 avec un preg_match_all,
$pattern = "!<bloc_([^>])+>([^<]*)<\/bloc_\\1>!Usm" ne renvoit que le
bloc 3...
Y'a-t-il un moyen, sans passer par une fonction récursive, d'extraire
tous les blocs (du plus petit au plus grand)?
--
Réseau IRC Francophone: http://www.crazy-irc.net
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
Réseau IRC Francophone: http://www.crazy-irc.net
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr