Ne garder qu'un seul saut de ligne

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Lilive
Salamandre
Messages : 39
Inscription : 02 mars 2006, 09:50

Ne garder qu'un seul saut de ligne

Message par Lilive »

Bonjour,
J'ai un problème qui me semblerait simple à résoudre mais sur lequel je bloque :
je récupère de ma base de donnée un flux de texte avec des sauts de ligne que je transforme par nl2br en sauts html. Je voudrais faire en sorte que lorsqu'il y a plusieurs sauts de ligne successifs, un seul soit conservé.
J'ai fait une expression régulière simple mais qui ne fonctionne pas (je ne suis pas trop expert des regexp) :

Code : Tout sélectionner

eregi_replace("<br />*","<br>",$texte);
Quelqu'un peut-il m'aider ?
Merci
Lilive
FF_Olivier
Iguane
Messages : 979
Inscription : 09 juil. 2004, 15:41

Message par FF_Olivier »

Bonjour,

Essaie

Code : Tout sélectionner

eregi_replace("(<br />)+","<br />",$texte);
ou
eregi_replace("(<br>)+","<br>",$texte);
Mais pas garanti ;) ...
Il faut voir aussi si les <br /> multiples sont bien collés les uns aux autres sans espace blanc ou retour chariot entre eux.
openSUSE 12.2 - FF v24.0 FR - TB v24.0 FR ma config en détails - Décrivez la vôtre ici ;)
userContent.css : modifiez l'apparence et le contenu des sites visités !
Lilive
Salamandre
Messages : 39
Inscription : 02 mars 2006, 09:50

Message par Lilive »

Effectivement, nl2br ajoute <br> mais conserve aussi les\n donc chaque <br> est sur une nouvelle ligne... d'où peut-être la difficiculé à reconnaître l'expression.

bon j'ai résolu le problème comme ceci :

Code : Tout sélectionner

$texte=nl2br($texte);
$texte=str_replace("\r\n","",$texte);
$texte=eregi_replace("(<br />)+","<br>",$texte);
Si quelqu'un a une solution plus efficace, je suis preneur.
Merci pour votre aide[/code]
Lilive
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités