Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera, tudo bom?
Criei uma tabela no meu banco de dados onde um dos campos tem o valor "TEXT".
Ok, nesse campo eu coloco algum texto.
Então, eu tento exibir com o nl2br no PHP, assim:
echo nl2br($variavel);
Porém, o texto que era pra sair assim:
Teste 1.
Teste 2.
Sai assim:
Teste 1. Teste 2.
Então fui dar uma procurada na internet e vi que pode ser um problema de quando eu adiciono esse texto no banco de dados usando o mysql_real_escape_string (sim, eu uso). E então depois de ver isso fiquei meio desnorteado.
E então, como deve ser feito?
Isso que eu achei estranho, no banco ele não tem nenhum simbolo como \n ou \r.
Quando eu mando um echo na tela ele aparece o texto como se eu tivesse gravado como VARCHAR, ou seja, tudo numa mesma linha.
varchar e text gravam a quebra de linha..
o fato de aparecer os caracteres \n ou \r depende do front-end que está utilizando para visualizar os dados no db..
dá um echo no resultado da consulta no php mesmo sem o nl2br.
abra a página no modo código fonte.. Nao olhe pela renderização do browser, olhe o fonte gerado.
A função nl2br converte quebras de linha ( \n \r ) para a entidade HTML "<br>".
Se não está convertendo, verifique como está gravado no banco de dados.
Um simples teste é mandar escrever na tela sem o uso de nl2br.. Se não possuir quebras de linha então o problema pode estar no momento da inserção.