Bonsoir tout le monde !
J'ai deux problèmes sur des regexp et comme cela fait quelques heures que je suis dessus je me permets de vous demander de l'aide....
Voilà je m'explique je me faisais un système de BBCode pour un site et je suis tombé sur deux soucis:
- 1 : J'aimerais que l'on puisse créer une liste <ul> donc je me suis fait une balise [ list ] [/ list ] ou chaque élément est représenté par [ * ] mais le problème c'est que lors de l'affichage du texte j'ai mis la fonction PHP nl2br donc il me créé ceci :
donc à cause de cela ma page n'est plus valide W3C... J'aimerais donc savoir comment récupérer dans ma regexp la saut de ligne pour qu'il ne s'affiche plus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <ul><br /> <li>azerty <br /></li> <li> qwerty<br /> </li> </ul>
j'ai essayé (les regexp sont lancés avant l appel a nl2br):
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 preg_replace('#\[list\](\r|\n|\r\n)*(.+)\[/list\]#isU','<ul>$2</ul>',$maVariable)
Donc si quelqu'un pouvait me venir en aide....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 preg_replace('#\[list\](?:(\n|\r|\r\n| )*)(.+)\[/list\]#isU','<ul>$2</ul>',$maVariable)
2 : Le second souci c'est de ne pas exécuter le BBCode lorsque l'on est dans une balise [ code ], là par contre je n'ai aucune piste et ne sais absolument pas par où commencer....
Merci d'avance à tous pour votre aide !!
Partager