quebras de linha de captura (de nova linha, de alimentação de linha) caracteres de uma área de texto

StackOverflow https://stackoverflow.com/questions/289159

Pergunta

Eu tenho um formulário com uma <textarea> e quero capturar qualquer quebra de linha em que textarea no lado do servidor, e substituí-los com um <br/>.

É possível?

Eu tentei configuração white-space:pre em CSS do textarea, mas ainda não é suficiente.

Foi útil?

Solução

Tenha um olhar para o href="http://ca3.php.net/manual/en/function.nl2br.php" rel="nofollow noreferrer"> nl2br() função . Ele deve fazer exatamente o que você quer.

Outras dicas

A função nl2br() existe para fazer exatamente isso:

No entanto, essa função adiciona marcas br mas na verdade não remover as novas linhas - isso geralmente não é um problema, mas se você quiser tira-los e pegar retornos de carro completamente bem, você deve usar um str_replace ou preg_replace

Eu acho que str_replace seria um pouco mais rápido, mas eu não aferido;

$val = str_replace( array("\n","\r","\r\n"), '<br />', $val );

ou

$val = preg_replace( "#\n|\r|\r\n#", '<br />', $val );

Se você estiver indo para usar str_replace ou preg_replace, você provavelmente deve colocar o "\r\n" no início da matriz, caso contrário, uma seqüência \r\n será traduzida em duas tags <br/> (desde o \r serão combinados, e então o \n será combinado).

por exemplo:

$val = str_replace( array("\r\n", "\n","\r"), '<br />', $val );

ou

$val = preg_replace( "#\r\n|\n|\r#", '<br />', $val );

Para aqueles que querem uma resposta que não depende de nl2br():

$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);

ou (neste caso):

$newList = ereg_replace( "\n",'<br/>', $_POST['theTextareaContents']);

PHP Side: de corda Textarea para string PHP

$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);

PHP Side: PHP seqüência de volta para string TextArea:

$list = str_replace('|', '&#13;&#10;', $r['db_field_name']);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top