Bonjour,
J'ai créé un système de bb-code sur mon site afin que les internautes puisse publier des articles.
Je récupère l'article de l'internaute en $_post et le parse pour remplacer les balises bb_code en balise html. Jusque la j'ai réussi et ca ressemble à ca :
Ensuite je récupére mon texte avec les balises html et il y a des choses que je n'aime pas trop , mais que je ne parviens pas à modifier. Exemple
ou encore:
Je n'arrive pas à faire mes regex pour modifier mes balises html.
Dans le premier exemple je voudrais remplacer
Dans le deuxième exemple je voudrais remplacer
j'ai essayé ceci qui ne marche pas
Je pense que mon problème viens des \ devant les métacartéres en particulier < et >, mais je ne trouve pas la solution.
Quelqu'un peut-il m'aider.
Modifié par yann123 (13 May 2008 - 00:38)
J'ai créé un système de bb-code sur mon site afin que les internautes puisse publier des articles.
Je récupère l'article de l'internaute en $_post et le parse pour remplacer les balises bb_code en balise html. Jusque la j'ai réussi et ca ressemble à ca :
$texte = nl2br($texte); // On crée des <br /> pour conserver les retours à la ligne
$texte = preg_replace('#\[b\](.+)\[/b\]#isU', '<strong>$1</strong>', $texte); // Met en gras
$texte = preg_replace('#\[i\](.+)\[/i\]#isU', '<em>$1</em>', $texte); // Met en italique
$texte = preg_replace('#\[u\](.+)\[/u\]#isU', '<span style="text-decoration:underline;">$1</span>', $texte); // souligne un texte
....
return $texte;
Ensuite je récupére mon texte avec les balises html et il y a des choses que je n'aime pas trop , mais que je ne parviens pas à modifier. Exemple
<p></p><h2>Un titre</h2>
ou encore:
du texte du texte du texte.<br />
<br />
du texte du texte du texte.
Je n'arrive pas à faire mes regex pour modifier mes balises html.
Dans le premier exemple je voudrais remplacer
<p></p>
par rien , puisque c'est un paragraphe vide (donc les supprimer).Dans le deuxième exemple je voudrais remplacer
<br /><br />
par <p></p>
puisque lorsqu'il y a deux saut de lignes c'est en général un nouveau paragraphe qui commence.j'ai essayé ceci qui ne marche pas
$texte = preg_replace('#\<p\>\<\/p\>#isU', '', $texte); // supprime les paragraphes inutile
$texte = preg_replace('#\<br \\>(.+)\<br \\>#isU', '<p>', $texte); // cree un nouveau paragraphe quand il y a deux sauts de lignes.
Je pense que mon problème viens des \ devant les métacartéres en particulier < et >, mais je ne trouve pas la solution.
Quelqu'un peut-il m'aider.
Modifié par yann123 (13 May 2008 - 00:38)