2009-09-07 8 views
3

J'utilise nl2br pour convertir les caractères nl de tag
mais pour ex je veux convertir « Bonjour \ n \ n \ n \ n Tout le monde » à « Bonjour
Tout le monde » aussi je veux convertir multinewlines à une étiquette br. Comment puis-je faire ceci ?nl2br plus d'un saut de ligne

Répondre

8

L'approche la plus directe pourrait être d'abord remplacer les multiples sauts de ligne avec un en utilisant une expression régulière simple:

nl2br(preg_replace("/\n+/", "\n", $input)); 
+0

Merci pour avoir la solution. J'ai une autre question. Comment puis-je autoriser 1 et 2 newline? – mTuran

+0

Si vous voulez conserver jusqu'à deux caractères '\ n', placez-en deux dans l'expression régulière et remplacez-les:' preg_replace ("/ \ n \ n + /", "\ n \ n", $ input) ' – VoteyDisciple

0

Je vais essayer de remplacer les nouvelles lignes répétées avec des sauts de ligne unique à l'aide preg_replace() d'abord, puis en utilisant nl2br convertir en HTML
étiquettes. nl2br(preg_replace('/\n+/', '\n', $the_string)) devrait faire l'affaire (non testé).

3

Si vous avez php 5.2.4+ vous pouvez utiliser preg_replace et le type vertical de caractères espaces \v

$str = preg_replace('/\v+/','<br>', $str); 
Questions connexes