2011-10-28 24 views
6

Duplicar posible:
Why does PHP echo'd text lose it's formatting?PHP nueva línea que no trabaja

no puedo conseguir la nueva línea de funcionar justo trabajo. Simplemente sale como una línea. Como esto -

Make: Sony Model: a Processor: Intel Core 2 Duo 

Este es el código para ello ---

$message="Make: " . $_POST['make'] . "\r\n Model: " . $_POST['model'] . "\r\n Processor: " . $_POST['processor']; 

Cuando esto se envía como un correo electrónico funciona perfecto, pero cuando lo hago

echo $message; 

apenas viene como lo anterior, todo en una línea. ¿Cómo puedo hacer que esto funcione?

gracias

+0

¿Mi nombre se parece a rodger? jaja, no, no está duplicado. –

+0

@ user977229 No obstante, es una tontería. – middus

Respuesta

13

Usted está probablemente haciendo eco de este en una página web.

Los navegadores no respetan (o al menos no deberían) las nuevas líneas literales; en su lugar, debe usar la etiqueta HTML <br>.

Prueba esto:

echo str_replace(array("\r\n","\r","\n"),'<br>',$message); 
// or 
echo nl2br($message); 
+0

gracias, ¿cómo puedo incorporar la etiqueta
en el código? –

+0

ver la edición anterior ... – DaveRandom

+1

aplausos mate - trabajado –

2

Si desea imprimir utilizando HTML que se tendrá que utilizar <br /> o utilizar la función nl2br().

Usando <br />:

$message = 'Make: ' . $_POST['name'] . '<br />'; //... 

Si desea enviar texto plano, defina una cabecera HTTP apropiado, por ejemplo

header('Content-Type: text/plain'); 

La mayoría de los navegadores lo tomarán como una pista para mostrarlo en "modo crudo".

3

HTML ignora las nuevas líneas.

En su lugar, debe usar <br />, <pre> o <table>.

+0

Pregunta original (no de sarky comment): '

' ?? ¿Cómo funciona? – DaveRandom

+0

@DaveRandom Simplemente use una tabla para mostrar datos tabulares en lugar de formatear el texto? – middus

+1

Oh, ya veo. Lo siento, pensé que estabas diciendo que ponerlo en una mesa haría que la línea se rompa. No prestar atención. +1. – DaveRandom