¿Cómo agregar un salto de línea dentro de echo en PHP? [cerrado]

92

Estaba tratando de agregar un salto de línea para una oración y agregué el /n siguiente código.

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 algunas razones, obtuve el error del servidor como resultado. ¿Cómo lo soluciono?

jumax
fuente
4
use barra invertida, este no es un carácter de escape correctamente \n. Pero el error del servidor no está relacionado con este intento, busque en el registro de apache y verifique el __(arg)documento
Marek Sebera
1
Bienvenido a Stackoverflow. Siga los consejos de solicitud que necesita para confirmar antes de publicar cualquier pregunta. Tenga en cuenta que solo usted quiere algo y se pregunta cómo está programado no califica como una pregunta de programación en sí.
hakre

Respuestas:

255

\nes un salto de línea. /nno es.


uso de \ncon

1. hacer eco directamente en la página

Ahora, si está intentando hacer eco de la cadena en la página:

echo  "kings \n garden";

la salida será:

kings garden

no entrará gardenen una nueva línea porque PHP es un lenguaje del lado del servidor, y está enviando la salida como HTML, necesita crear saltos de línea en HTML. HTML no comprende \n. Necesitas usar la nl2br()función para eso.

Lo que hace es:

Devuelve una cadena con <br />o <br>insertada antes de todas las líneas nuevas (\ r \ n, \ n \ r, \ n y \ r).

echo  nl2br ("kings \n garden");

Salida

kings
garden

Nota Asegúrese de que está repitiendo / imprimiendo \nentre comillas dobles, de lo contrario se representará literalmente como \ n. porque el intérprete de php analiza la cadena en comillas simples con el concepto de como está

so "\n" not '\n'

2. escribir en un archivo de texto

Ahora, si hace eco en el archivo de texto, puede usar solo \ny se repetirá en una nueva línea, como:

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

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

la salida será:

kings
 garden
NullPoiиteя
fuente
1
Ampliando lo anterior. Esto funciona - ejemplo -> echo "<html>". "\ N"; o echo "jardín de los reyes". "\ n"; que agrega un salto de línea después de la primera línea. Google me llevó aquí cuando quise agregar saltos de línea después del eco.
MarcoZen
18

Tienes que usar br cuando usas echo, así:

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

y funcionará correctamente

Maryam Homayouni
fuente
1
Eso no funcionará para documentos html
MarcoZen
1
Eso no funcionará cuando los esté haciendo eco en un archivo de idioma del lado del servidor / php
MarcoZen
13

El carácter de nueva línea es \n, así:

echo __("Thanks for your email.\n<br />\n<br />Your order's details are below:", 'jigoshop');
Noetix
fuente
¿Cuál es el prefijo __(dos guiones bajos)?
Peter Mortensen
1
@PeterMortensen Es una función en algunos frameworks PHP para apoyar la internacionalización. La publicación original lo usó, por lo que lo agregué a mi respuesta.
Noetix
2

Es posible que desee probar \ r \ n para retorno de carro / salto de línea

Jonathan
fuente
El problema parece ser la barra diagonal, /nvs \n.
Peter Mortensen