terça-feira, 3 de julho de 2018

Salvar quebras linhas do campo TEXTAREA


Quando você usa o campo de entrada textarea em um formulário, o usuário pode quebrar linhas (com a tecla enter), contudo, ao salvar o texto ali inserido, normalmente o banco de dados (BD) não reconhece essas quebras de linha. Então, quando você recupera o texto salvo no BD e exibe na página, todo o conteúdo aparece num único bloco de texto, como um só parágrafo.

Mas é possível instruir o registro de quebras de linhas. Veja como:

Primeiro, você deve configurar no formulário o campo textarea para reconhecer as quebras de linhas. Basta usar o atributo "wrap" e o valor "soft".

Exemplo de um campo textarea num formulário formatado para quebra de linha:

<textarea wrap="soft" name="msg"></textarea>

Segundo, na hora de salvar no BD os valores digitados nessa caixa, configure a variável (name="msg") para reconhecer as quebras de linhas através dos seguintes comandos:

$breaks = array("\r\n", "\n", "\r");
$msg = str_replace($breaks, "<br>", $msg);

O que fizemos foi o seguinte: criamos a variável $breaks com a instrução de reconhecimento das quebras de linha da caixa textarea — que é "\n" de new (nova) ou "\n" de row (linha)— e aplicamos à variável do campo do formulário (msg), substituindo todas aquelas quebras de linha (n\n) por <br>, que é a marcação padrão em HTML.

Agora, para recuperar o formado de quebra de linha para uma caixa textarea, é preciso o inverso: converter de <br> para <\n>, que se faz com o código seguinte:

$breaks = array("<br>");
$msg = str_replace($breaks, "\n", $msg);
echo $msg;

E pronto! É só!

Nenhum comentário:

Postar um comentário