Bonjour à tous,
Voila j'ai mit en place un système de bbcode comme dans le tutoriel vidéo que Graf' nous a fait. Néanmoins, j'essaye de pousser un peu plus loin ce système en y ajoutant par exemple la possibilité d'avoir une liste ordonnée ou non ordonnée (<ul><li>....</li></ul>).
J'ai donc mis en place ma règle comme suit :
'\[liste]\s((.*|\s)+)\\/liste\]' => '<ul><li>$1</li></ul>'
Le problème est que quand je crée ma liste et bien ça donne ceci :
[liste]
item 1
item 2
[/liste]
Et que je n'ai pour le moment la possibilité d'avoir en sorti qu'une seul item :
<ul>
<li>item 1 item 2</li>
</ul>
Je n'arrive pas à voir comment avoir :
<ul>
<li>item 1</li>
<li>item 2</li>
</ul>
Moi j'ai fait comme ça : [code]$in = array( '#[list\=(circle|square|disc)]\n(.*?)[\/list]#sm', '#[list\=(1|A|a|I)]\n(.*?)[\/list]#sm', '#[\]\s?(.\?)\n#sm' ); $out = array( '
$2', '
$2', '- $1
' ); $text = preg_replace($in, $out, $text);[/code] Ce n'est peut-être pas la meilleur solution mais ça marche :P @+
Bonjour, Je croit que j'ai la solution à ton Problème. Aucun regex n'est utile ici, utilise str_replace() ! [code] // On remplace les balises BBcode : $Text = str_replace(array('', '**', '- '), array('
', '', '- '), $Text); // On supprime le parasite
juste après le
$Text = preg_replace('/\
(.*)\/isU', '
', $Text); [/code] Voila j'espère que ça va t'aider.
Hellow, j'ai fait de cette manière : -> Ajouter la balise li dans le fichier JS. (- en BBCode) -> Convertir en PHP : [code]'[list](.*?)[\/list]' => '
$1', '[\](.*?)[\/\]' => '- $1
'[/code] Et il faut aussi mettre à la fin de la regex un échappement s (escape) ex : preg_replace('/' . $k . '/s', $v, $texte) Voilà.. Bye. :p
Justement j'aimerai que cela se fasse automatiquement et non pas en ajoutant manuellement les balises - =p