2011-01-15 15 views
7

Questo è il codice dentro il mio ciclo PHP:Come posso iniziare una nuova riga HTML da PHP?

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

Come faccio sì che il PHP per iniziare una nuova linea di HTML con ogni iterazione del ciclo (invece di stampare tutto su una singola linea di codice HTML)?

risposta

22

È necessario includere caratteri di nuova riga nell'output. Così:

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

Nota le virgolette, che sono necessari per la sfuggito \ n di apparire come un carattere di nuova linea al posto di un letterale \ n.

Un'altra utile fuga è \ t, che inserisce le schede nell'output.

Infine, come una punta non correlata, è più veloce passare più stringhe echo con virgole invece di periodi, in questo modo:

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

Questo è perché usando il puntino provoca PHP per assegnare un nuovo buffer di stringa , copia tutte le stringhe separate in quel buffer e quindi invia questa stringa combinata; mentre la virgola fa in modo che PHP esca semplicemente le stringhe una dopo l'altra.

+2

dal momento che il carattere della nuova riga \ n non serve alcun punto in html, è meglio non utilizzarlo, mantiene i file (leggermente più piccoli) –

+0

Voglio dire che sarebbe più valido usare "\ r \ n" invece, ma non importa. –

+0

Sono d'accordo. Tuttavia, per eseguire il debug è utile occasionalmente inserirli e quindi è utile sapere come è fatto. –

5

provare questo:

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

Il \ n è un carattere di nuova riga se tra virgolette.

6

Utilizzare il carattere di nuova riga tra virgolette "\n". Single non funzionerà.

0

Trovo che usando le virgolette singole è più facile che usare. "\ N" ad esempio utilizzando

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

caratteri di nuova riga fanno eco se sono all'interno di singoli apici

0

È possibile inserire caratteri di nuova riga che apparirà nel codice sorgente HTML includendo ritorni a capo letterali nelle stringhe PHP, ad esempio:

$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>'; 

uscita volontà

This is row 1 and 
this is row 2  

come ci si aspetterebbe, ma il codice sorgente sarà presentata come: ad esempio

<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 forse, ma quando si sta riecheggiando una stringa di grandi dimensioni con diverse linee (come una tabella), è più facile eseguire il debug del codice sorgente HTML se queste interruzioni di riga sono presenti. Tieni presente che, se indentri con tabulazioni o spazi all'interno di queste stringhe, il codice HTML avrà anche questi rientri. Ovviamente, il browser colliderà tutti in spazi singoli, ma renderà il codice HTML più facile da seguire.

Problemi correlati