Como mostrar apenas uma nova linha usando NL2BR?
Pergunta
estou usando nl2br()
converter \n
personagens para o <br />
tag, mas eu não quero mais de um <br />
etiqueta de cada vez. Por exemplo, Hello \n\n\n\n Everybody
Deve se tornar Hello <br /> Everybody
.
Como posso fazer isso?
Solução
A abordagem mais direta pode ser substituir primeiro as múltiplas linhas de linhas por uma usando uma expressão regular simples:
nl2br(preg_replace("/\n+/", "\n", $input));
Outras dicas
Se você possui Php 5.2.4+, pode usar preg_replace e o tipo de caractere vertical em branco \v
$str = preg_replace('/\v+/','<br>', $str);
Eu tentaria substituir as novas linhas repetidas por linhas únicas usando preg_replace () primeiro e depois usando o nl2br para converter em html
Tag. nl2br(preg_replace('/\n+/', '\n', $the_string))
deve fazer o truque (não testado).
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow