Bonjour,
pour la realisation d'un site web dynamique, j'ai recours à la fonction nl2br afin de transformer les sauts de ligne en balise <br /> interprété par les navigateurs. Je suis aussi amené à utiliser les balises <pre></pre> pour mettre en valeur du texte, et c'est là que ça se complique. Lorsque le texte à mettre en valeur tient sur une seule ligne, pas de probleme, mais lorsque le texte est sur plusieurs ligne (sous entendu des sauts de ligne, pas les retours à la ligne auto) pre et nl2br font double emploi, resultat j'obtiens une ligne blanche entre mes lignes de texte.
J'ai pensé utiliser une regex pour supprimer les balises br se trouvant entre les balises pre, mais ça ne fonctionne que pour la premiere ligne, pour les suivantes ce n'est pas operationnel.
voici mon code :
et le resultat obtenu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php $contenu = ''; $contenu = nl2br($contenu); $contenu = preg_replace('#\[code\](.*?)(<br />)+(.*?)\[/code\]#is', '<pre>$1$3</pre>', $contenu); echo $contenu; ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1234 ligne bla 1 ligne blalbla 2 ligne blabla 3 ligne blabla4
http://alexleboss2.free.fr
sachant que le nombre de ligne dans la balise pre varie de 1 à 15 en gros
Merci d'avance
Partager