No PHP, estou tentando criar um caractere de nova linha:
echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';
Depois, abro o arquivo criado no bloco de notas e ele grava a nova linha literalmente:
1 John Doe \ r \ n 1 John Doe \ r \ n 1 John Doe \ r \ n
Eu tentei muitas variações do \r\n
, mas nenhum funciona. Por que a nova linha não está se transformando em uma nova linha?
php
string-interpolation
davidjhp
fonte
fonte
Respostas:
Somente seqüências de caracteres entre aspas duplas interpretam as seqüências de escape
\r
e\n
como '0x0D' e '0x0A' respectivamente, então você deseja:Seqüências de caracteres simples , por outro lado, conhecem apenas as seqüências de escape
\\
e\'
.Portanto, a menos que você concatene a string entre aspas simples com uma quebra de linha gerada em outro lugar (por exemplo, usando string entre aspas duplas
"\r\n"
ou usando achr
funçãochr(0x0D).chr(0x0A)
), a única outra maneira de obter uma quebra de linha dentro de uma única string entre aspas é literalmente digitando-a com o seu editor:Verifique se o editor está em busca de suas configurações de quebra de linha, se você precisar de alguma sequência de caracteres específica (
\r\n
por exemplo).fonte
PHP_EOL
vez disso, você deve usarUse a
PHP_EOL
constante predefinida :O valor constante será definido de acordo com as terminações de linha do sistema operacional em que o PHP está executando. No Linux, será
"\n"
; no Windows, será"\r\n"
.fonte
O comando "eco" no PHP envia a saída para o navegador como html bruto, mesmo que entre aspas duplas o navegador não o analise em duas linhas, porque um caractere de nova linha em HTML não significa nada. É por isso que você precisa usar:
ao usar "eco", ou use fwrite ...
Isso produzirá uma nova linha HTML no lugar de "\ n".
fonte
Use a constante PHP_EOL para obter o caractere certo, independentemente da plataforma.
http://us3.php.net/manual/en/reserved.constants.php
Um exemplo simples de uso:
fonte
As cadeias entre aspas duplas
""
interpolam, o que significa que eles convertem caracteres de escape em caracteres imprimíveis.As cadeias entre aspas simples
''
são literais, o que significa que são tratadas exatamente como os caracteres são digitados.Você pode ter os dois na mesma linha:
saídas:
fonte
echo "$clientid $lastname\r\n"
Você deve usar isto:
Você também pode querer dar uma olhada no PHP EOL .
fonte
Na verdade,
\r\n
é para o lado html da saída. Com esses caracteres, você pode criar uma nova linha no código html para torná-lo mais legível:irá produzir:
que a visualização da página será:
Se você realmente quis dizer isso, basta corrigir a citação única com a citação "":
Caso contrário, se você quiser dividir o texto, em nosso exemplo 'Primeira linha' e 'Segunda linha', será necessário usar o código html
<br />
::que produzirá:
Além disso, seria mais legível se você substituir o script inteiro por:
fonte
First line Second line
- qualquer espaço em branco, incluindo novas linhas, será compactado para um caractere de espaço na saída renderizada. Além disso,</br>
é tudo menos HTML válido.O w3school ofereceu desta maneira:
pelo uso dessa função, você pode fazê-lo ... tentei de outras maneiras acima, mas elas não me ajudarão ..
fonte
nl2br()
função converte caracteres de nova linha na<br />
tag HTML. Isso pode ser útil para criar uma nova linha nas páginas do navegador, mas não uma nova linha em arquivos de texto ou JavaScript ou imprimir na tela ou no console.Por alguma razão, cada post perguntando sobre escapes de nova linha no PHP não menciona o caso de que simplesmente inserir uma nova linha em strings de aspas simples fará exatamente o que você pensa:
ex 1.
O Exemplo 1 claramente não imprime o resultado desejado; no entanto, embora seja verdade que você não pode escapar de uma nova linha entre aspas simples, pode ter um:
ex 2.
O exemplo 2 tem exatamente o comportamento desejado. Infelizmente, a nova linha inserida depende do sistema operacional. Isso geralmente não é um problema, pois os navegadores / servidores da Web interpretam corretamente a nova linha, seja \ r, \ r \ n ou \ n.
Obviamente, essa solução não é ideal se você planeja distribuir o arquivo por outros meios, como um navegador da web e vários sistemas operacionais. Nesse caso, você deve ver uma das outras respostas.
nota: usando um editor de texto rico em recursos, você poderá inserir uma nova linha como caractere (s) binário (s) que representa uma nova linha em um sistema operacional diferente daquele que edita o arquivo. Se tudo mais falhar, basta usar um editor hexadecimal para inserir o caractere ascii binário.
fonte
Use o PHP nl2br para obter as novas linhas em uma sequência de texto.
fonte
nl2br
função converte caracteres de nova linha na<br />
tag HTML. Se a string não contiver nenhum caractere de nova linha, esta função não fará nada! Além disso, a questão não é quebrar uma linha dentro de um parágrafo em HTML. É sobre o personagem da nova linha !Eu também tentei essa combinação nas aspas simples e duplas. Mas nenhum funcionou. Em vez de usar
\n
melhor o uso<br/>
entre aspas duplas. Como isso..fonte
Use chr (13) para retorno de carro e chr (10) para nova linha
fonte
Para qualquer declaração de eco, eu sempre uso
<br>
aspas duplas.fonte
Nada estava funcionando para mim.
PHP_EOL
. "\r\n";
Funciona para mim:
fonte
fonte