2011-01-15 11 views

Respuesta

22

Debe incluir caracteres de nueva línea en su salida. Por lo tanto:

echo 'Name: ' . $name . "<br/>\n"; 

Nota las comillas dobles, que son necesarios para el escapado \ n que aparezca como un carácter de nueva línea en lugar de un literal \ n.

Otro escape útil es \ t, que inserta pestañas en su salida.

Por último, como una punta sin relación, es más rápido que pasar varias cadenas de echo por comas en lugar de períodos, así:

echo 'Name: ', $name ,"<br/>\n"; 

Esto es porque el uso del punto hace que PHP para asignar un nuevo búfer de cadenas , copie todas las cadenas separadas en ese búfer y luego genere esta cadena combinada; mientras que la coma hace que PHP simplemente muestre las cadenas una tras otra.

+2

dado que el carácter de la nueva línea \ n no tiene sentido en html, es mejor no usarlo, mantiene los archivos (fraccionalmente) más pequeños –

+0

Quiero decir que sería más válido usar "\ r \ n" en cambio, pero realmente no importa. –

+0

Estoy de acuerdo. Sin embargo, para la depuración ocasionalmente es útil ponerlos, y por lo tanto es bueno saber cómo se hace. –

5

probar esto:

echo 'Name: ' . $name . '<br/>'."\n"; 

El \ n es un carácter de nueva línea si entre comillas dobles.

6

Utilice el carácter de nueva línea entre comillas dobles "\n". Solo no funcionará.

0

Me parece que el uso de comillas simples es más fácil de usar. "\ N" por ejemplo usando

echo 'text'.$var.'<br /> 
next line'; 

caracteres de nueva línea se repiten si están dentro de las comillas simples

0

Puede insertar caracteres de nueva línea que aparecerá en el código fuente HTML mediante la inclusión de los retornos de carro literales en sus cadenas de PHP, por ejemplo:

$count1 = '1'; 
$count2 = '2'; 
/* Note the opening single quote in the next line of code is closed on 
the following line, so the carriage return at the end of that line is 
part of the string */ 
echo '<table> 
    <tr><td>This is row</td><td>' , $count1 , '</td><td>and</td></tr> 
    <tr><td>this is row</td><td>' , $count2 , '</td><td>&nbsp;</td></tr> 
</table>'; 

es la salida

This is row 1 and 
this is row 2  

como era de esperar, pero el código fuente se presenta como: ejemplo

<table> 
    <tr><td>This is row</td><td>1</td><td>and</td></tr> 
    <tr><td>this is row</td><td>2</td><td>&nbsp;</td></tr> 
</table> 

Trivial tal vez, pero cuando se está haciendo eco de una gran cadena con varias líneas (como una tabla), es más fácil depurar la fuente HTML si estos saltos de línea están presentes. Tenga en cuenta que, si aplica sangría con pestañas o espacios dentro de estas cadenas, el código HTML también tendrá estas sangrías. Por supuesto, el navegador colapsará todos ellos en espacios únicos, pero hace que el código HTML sea más fácil de seguir.

Cuestiones relacionadas