Nuevo salto de línea PHP en correos electrónicos

Tengo el siguiente código:

$message = "Good news! The item# $item_number on which you placed a bid of \$ $bid_price is now available for purchase at your bid price.\n The seller, $bid_user is making this offer.\n \nItem Title : $title\n \nAll the best,\n $bid_user\n $email\n "; echo $message; $htmlContent = $baseClass->email_friend($item_number, $title, $bid_price, $bid_user, $mcat, $message, $email, $VIEWSTATE, $EVENTVALIDATION, $URL); 

El problema es que el nuevo salto de línea (\n) no está funcionando.

Pruebe \r\n en lugar de \n

La diferencia entre \ n y \ r \ n

Cabe señalar que esto es aplicable a los retornos de línea en los correos electrónicos. Para otros escenarios, consulte la respuesta de rokjarc.

Sé que esta es una pregunta antigua, pero de todos modos podría ayudar a alguien.

PHP_EOL a usar PHP_EOL para este propósito (debido a la compatibilidad multiplataforma).

 echo "line 1".PHP_EOL."line 2".PHP_EOL; 

Si planea mostrar el resultado en un navegador, debe usar "
"
.

EDITAR: dado que su pregunta exacta es sobre correos electrónicos, las cosas son un poco diferentes. Para correos electrónicos de texto puro, vea la respuesta aceptada de Brendan Bullen. Para los correos electrónicos HTML, simplemente usa el formato HTML.

¿Estás construyendo esta cadena usando comillas simples o dobles? \ ny \ n solo funcionan con comillas dobles, así como con variables incrustadas. Por ejemplo:

 $foo = 'bar'; echo 'Hello \n $foo!'; 

dará salida:

 Hello \n $foo! 

Pero:

 $foo = 'bar'; echo "Hello \n $foo!"; 

dará salida:

 Hello bar! 

Si envía a html o un correo electrónico html tendrá que utilizar
o
lugar de \n .

Si solo se trata de un mensaje de correo electrónico de texto: ¿Tal vez está usando ' lugar de " ? Aunque entonces sus valores tampoco se insertarían …

puedes usar "Line1
Line2"

EDITAR: Tal vez su clase para enviar correos electrónicos tiene una opción para correos electrónicos HTML y luego puede usar

1) comillas dobles

 $output = "Good news! The item# $item_number on which you placed a bid of \$ $bid_price is now available for purchase at your bid price.\nThe seller, $bid_user is making this offer.\n\nItem Title : $title\n\nAll the best,\n $bid_user\n$email\n"; 

Si usa comillas dobles, \ n funcionará (no habrá línea nueva en el navegador, pero verá el código fuente en su navegador – los caracteres \ n serán reemplazados por líneas nuevas)

2) Las comillas simples no tienen el efecto de las comillas dobles anteriores:

 $output = 'Good news! The item# $item_number on which you placed a bid of \$ $bid_price is now available for purchase at your bid price.\nThe seller, $bid_user is making this offer.\n\nItem Title : $title\n\nAll the best,\n $bid_user\n$email\n'; 

todos los caracteres se imprimirán como están (¡incluso variables!)

3) Saltos de línea en HTML

 $html_output = "Good news! The item# $item_number on which you placed a bid of 
$ $bid_price is now available for purchase at your bid price.
The seller, $bid_user is making this offer.

Item Title : $title

All the best,
$bid_user
$email
";
  • Habrá saltos de línea en su navegador y las variables serán reemplazadas por su contenido.

si está produciendo el código como html – change / n ->
y echo eco $ mensaje;

Cuando insertamos un salto de línea con un lenguaje de progtwigción, el código de char es “\ n”. php hace salir eso, pero html no puede mostrar que debido a htmls salto de línea es
. una forma tan fácil de hacer este trabajo es reemplazar todo el “\ n” con ”
“. Entonces el código debería ser

 str_replace("\n","
",$str);

después de agregar este código, no tendrá que usar una etiqueta previa para toda la opacidad de salida.

copió esta ans de este sitio web :