Como adicionar uma quebra de linha no echo em PHP? [fechadas]

94

Eu estava tentando adicionar uma quebra de linha para uma frase e adicionei o /n código a seguir.

echo "Thanks for your email. /n  Your orders details are below:".PHP_EOL;
echo 'Thanks for your email. /n  Your orders details are below:'.PHP_EOL;

Por alguns motivos, o resultado foi um erro de servidor. Como faço para corrigir isso?

Jumax
fonte
4
use barra invertida, este não é um caractere com escape adequado \n. Mas o erro do servidor não está relacionado a esta tentativa, olhe no log do apache e verifique a __(arg)documentação
Marek Sebera
1
Bem-vindo ao Stackoverflow. Siga o conselho que você precisa confirmar antes de postar qualquer pergunta. Lembre-se de que só você quer algo e se pergunta como isso está programado, não se qualifica como uma questão de programação per se.
hakre,
1
\né uma quebra de linha. /nnão é. Veja mais detalhes em stackhowto.com/how-to-add-a-new-line-within-echo-in-php
thomas

Respostas:

261

\né uma quebra de linha. /nnão é.


uso de \ncom

1. echo diretamente para a página

Agora, se você está tentando ecoar string para a página:

echo  "kings \n garden";

a saída será:

kings garden

você não entrará gardenem uma nova linha porque PHP é uma linguagem do lado do servidor e você está enviando a saída como HTML, você precisa criar quebras de linha em HTML. HTML não entende \n. Você precisa usar a nl2br()função para isso.

O que ele faz é:

Retorna string com <br />ou <br>inserida antes de todas as novas linhas (\ r \ n, \ n \ r, \ n e \ r).

echo  nl2br ("kings \n garden");

Resultado

kings
garden

Nota Certifique-se de que está ecoando / imprimindo \nentre aspas duplas, caso contrário, será processado literalmente como \ n. porque o interpretador php analisa a string em aspas simples com o conceito de como está

so "\n" not '\n'

2. escrever em arquivo de texto

Agora, se você ecoar para o arquivo de texto, poderá usar apenas \ne ele ecoará para uma nova linha, como:

$myfile = fopen("test.txt", "w+")  ;

$txt = "kings \n garden";
fwrite($myfile, $txt);
fclose($myfile);
 

a saída será:

kings
 garden
NullPoiиteя
fonte
1
Explicando o acima. Isso funciona - exemplo -> echo "<html>". "\ N"; ou echo "jardim dos reis". "\ n"; que adiciona uma quebra de linha após a primeira linha. O Google me trouxe aqui quando eu queria adicionar quebras de linha após o eco.
MarcoZen
18

Você tem que usar br ao usar echo, assim:

echo "Thanks for your email" ."<br>". "Your orders details are below:"

e vai funcionar corretamente

Maryam Homayouni
fonte
1
Isso não vai funcionar para documentos html
MarcoZen
1
Isso não funcionará quando você os estiver repetindo em um arquivo de linguagem php / servidor
MarcoZen
13

O novo caractere de linha é \n, assim:

echo __("Thanks for your email.\n<br />\n<br />Your order's details are below:", 'jigoshop');
noetix
fonte
Qual é o prefixo __(dois sublinhados)?
Peter Mortensen
1
@PeterMortensen É uma função em alguns frameworks PHP para apoiar a internacionalização. A postagem original usou, por isso eu adicionei à minha resposta.
noetix
2

Você pode querer tentar \ r \ n para retorno de carro / alimentação de linha

Jonathan
fonte
O problema parece ser a barra, /nvs \n.
Peter Mortensen