Page 1 sur 1

Ne garder qu'un seul saut de ligne

Publié : 11 avr. 2007, 17:42
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

Publié : 11 avr. 2007, 18:08
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.

Publié : 11 avr. 2007, 19:36
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]