Bonjour à tous
j'ai un code qui permet de parser via regex du bbcode dans un texte. Il marche nickel, le soucis c'est que je n'arrive pas à le rendre récursif en profondeur.
Je m'explique avec un exemple:
Dans ce cas, mon code va trouver 2 blocs mais ne les parse pas correctement et m'affiche ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [block] [block] [/block] [/block]
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [block] [block] [/block]
au lieu de parser les deux tag block correctement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [block] [/block] [/block]
Voici mon code php, merci de m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function bb_parse($string) { while (preg_match_all('`\[(.+?)=?(.*?)\](.+?)\[/\1\]`si', $string, $matches)) foreach ($matches[0] as $key => $match) { list($tag, $param, $innertext) = array($matches[1][$key], $matches[2][$key], $matches[3][$key]); switch ($tag) { // traitement } $string = str_replace($match, $replacement, $string); } return $string; }
Partager