Domanda

sto usando nl2br() convertire \n personaggi al <br /> tag ma non ne voglio più di uno <br /> tag alla volta. Per esempio, Hello \n\n\n\n Everybody dovrebbe diventare Hello <br /> Everybody.

Come posso fare questo?

È stato utile?

Soluzione

L'approccio più diretto potrebbe essere quello di sostituire innanzitutto le più newine con una che utilizza una semplice espressione regolare:

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

Altri suggerimenti

Se hai Php 5.2.4+ puoi usare Preg_replace e il tipo di carattere di spazio bianco verticale \v

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

Proverei a sostituire le nuove linee ripetute con singole nuove linee usando prima preg_replace (), quindi usando NL2BR per convertire in HTML
Tag. nl2br(preg_replace('/\n+/', '\n', $the_string)) dovrebbe fare il trucco (non testato).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top