Come mostrare una sola nuova linea usando NL2BR?
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?
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