Isso pode parecer uma bobagem, mas tenha certeza de que não. Pesquisei tanto no SO quanto no resto da web por uma resposta para o meu problema e acabei encontrando as mesmas "soluções" insuficientes repetidamente. De qualquer forma, aqui vai:
Estou salvando a entrada do usuário de uma área de texto em um banco de dados MySQL (em um ambiente WordPress, mas isso não deve importar para esse problema, acredito). Mais tarde, ele é recuperado do banco de dados para ser mostrado aos administradores no back-end do site. O problema ocorre quando os usuários enviam texto com quebras de linha (por exemplo, pressione a tecla Enter).
Uma sequência de amostra pode ser assim:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!
Greetings,
Bill
Não há caracteres de fim de linha ("\ n", "\ r" ou similares) na string.
Estou usando nl2br()
para gerar saída HTML, mas isso não é suficiente. O resultado é então:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill
Qual, até onde eu entendi, é o nl2br()
resultado esperado , pois ele insere as tags e não substitui as quebras de linha em primeiro lugar?
No entanto, o formato que eu preciso seria este:
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill
Se a string continha caracteres EOL como "\ n", eu a pressionaria com uma das str_replace()
teclas preg_replace()
e terminaria com ela, mas não tenho idéia de qual agulha alimentar essas funções, se não houver caracteres. em primeiro lugar.
Posso acessar manualmente o campo relevante no banco de dados, pressionar Backspace para cada quebra de linha e o que mais tarde quero fazer com a string funciona. Então eu sei que preciso do formato acima.