PHP - como criar um personagem newline?

no PHP estou a tentar criar um carácter newline:

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';

Depois abro o ficheiro criado no bloco de notas e ele escreve a nova linha literalmente:

1 John Doe\r \ n 1 John Doe\r \ n 1 John Doe \ r\r \ n

tentei muitas variações do \r\n, mas nenhuma funciona. Porque é que a linha nova não se está a transformar numa linha nova?

Author: Damien Flament, 2010-11-21

13 answers

Apenas cadeias de caracteres duplamente cotadas interpretem as sequências de escape \r e \n como '0x0D' e' 0x0A ' respectivamente, por isso querem:

"\r\n"

Por outro lado, apenas conhecem as sequências de escape\\ e \'.

Por isso, a menos que concorde o texto único citado com uma quebra de linha gerada noutro local (P. ex., usando uma cadeia de caracteres duplamente citada "\r\n" ou usando chr função chr(0x0D).chr(0x0A)), a única outra maneira de ter uma quebra de linha dentro de um único texto citado é literalmente escrevê-lo com o seu editor:

$s = 'some text before the line break
some text after';

Certifique-se que verifica a configuração da quebra de linha do seu editor se necessitar de alguma sequência de caracteres específica (\r\n, por exemplo).

 533
Author: Gumbo, 2015-01-28 17:54:05

Para o fim da linha independente da plataforma, pode usar a constante pré-definidaPHP_EOL , como em:

echo $clientid, ' ', $lastname, PHP_EOL;
 186
Author: nnevala, 2017-06-12 10:08:24

O comando "echo" em PHP envia o resultado para o navegador como html raw, por isso mesmo que entre aspas o navegador não o processará em duas linhas porque um carácter de newline em HTML não significa nada. É por isso que você precisa usar:

echo [output text]."<br>";

Ao usar "echo", ou, em vez disso, use o fwrite...

fwrite([output text]."\n");

Isto irá produzir a newline HTML no lugar de "\n".

 71
Author: davea0511, 2014-12-16 02:12:24

Use a constante PHP_EOL para obter o carácter certo, não importa a plataforma.

Http://us3.php.net/manual/en/reserved.constants.php

Um exemplo simples de Utilização:

<?php
$data = 'First line' . PHP_EOL .
        'Second line' . PHP_EOL .
        'Third line';

file_put_contents("filename.txt", $data);
?>
 29
Author: Salvi Pascual, 2017-06-11 14:37:50

Cadeias de caracteres entre aspas "" interpoladas, o que significa que convertem caracteres fugitivos para caracteres imprimíveis.

As Cadeias de caracteres entre aspas simples '' são literais, o que significa que são tratadas exactamente como os caracteres são digitados.

Podes ter ambos na mesma linha:

echo '$clientid $lastname ' . "\r\n";
echo "$clientid $lastname \r\n";

Saídas:

$clientid $lastname
1 John Doe
 19
Author: Kevin S. Miller, 2017-06-19 03:07:46

Na verdade \r\n é para o lado html da saída. Com esses caracteres você pode apenas criar uma nova linha no código html para torná-la mais legível:

echo "<html>One line \r\n Second line</html>";

Irá sair:

<html>First line
Second line</html>

Essa visualização da página será:

First line Second line

Se realmente quiseste dizer isto, só tens de corrigir a citação com a citação"":

echo "\r\n";

Caso contrário, se quiser dividir o texto, na nossa amostra 'primeira linha' e' segunda linha ' terá de usar o código html: <br />:

First line<br />Second line

Isso irá resultar:

First line
Second line

Também seria mais legível se substituísse todo o script por:

echo "$clientid $lastname \r\n";
 12
Author: Shoe, 2014-02-18 19:06:07

Deve usar isto:

"\n"

Também podes querer ver o PHP EOL.

 11
Author: Wouter Dorgelo, 2017-05-23 11:47:26
= = ligações externas = =
echo nl2br("One line.\n Another line.");

Pelo uso desta função você pode fazê-lo..eu tentei outras maneiras que disse acima, mas eles não me vão ajudar..

 7
Author: amin gholami, 2015-11-18 02:18:44

Use o PHP nl2br para obter as linhas novas em uma cadeia de texto..

"Manu é um bom rapaz.Ele sabe codificar bem.

Echo nl2br ($text);

Resultado.

Manu é um bom rapaz. Ele sabe codificar bem.
 3
Author: Manu R S, 2013-10-29 19:02:15

Por alguma razão, todos os posts que perguntam sobre a NewLine escapam no PHP não mencionam o caso de simplesmente inserir uma newline em strings de citação única fazer exactamente o que pensa:

Ex 1.

 echo 'foo\nbar';

O exemplo 1 claramente não imprime o resultado desejado, no entanto, embora seja verdade que não pode escapar a uma nova linha entre aspas, pode ter uma:

Ex 2.

 echo 'foo
 bar';

O Exemplo 2 tem exactamente o comportamento desejado. Infelizmente, a nova linha que é inserido é dependente do sistema operacional. Isto normalmente não é um problema, uma vez que os navegadores/servidores web irão interpretar correctamente a nova linha quer seja \r, \r\n ou \n.

Obviamente esta solução não é ideal se você planeja distribuir o arquivo por outros meios, em seguida, um navegador web e para vários sistemas operacionais. Nesse caso, deve ver uma das outras respostas.

Nota: usando um editor de texto rico em funcionalidades, deverá ser capaz de inserir uma nova linha como carácter(s) binário (s) que representa uma nova linha em um sistema operacional diferente do que a edição do arquivo. Se tudo o resto falhar, basta usar um editor Hexadecimal para inserir o caractere ASCII binário.

 3
Author: user2574384, 2015-01-28 17:20:03

Utilizar chr (13) para o carriage return e chr (10) para a new line

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo chr (13). chr (10);
 2
Author: Ariful Islam Rajib, 2013-06-05 09:10:20

Também tentei esta combinação, tanto entre aspas simples como aspas duplas. Mas nenhum funcionou. Em vez de usar \n melhor usar <br/> nas aspas duplas. Comer..

$variable = "and";
echo "part 1 $variable part 2<br/>";
echo "part 1 ".$variable." part 2";
 1
Author: phphunger, 2013-04-10 07:13:03

Para qualquer declaração de eco, Eu uso sempre {[[0]} dentro de aspas duplas.

 -1
Author: Matthew Park, 2017-02-15 20:15:20