back to top

Andare a capo con PHP: come si fa?

Come si fa ad andare a capo con PHP? Mi sono sentito fare spesso questa domanda, ma la risposta varia a seconda di cosa realmente s’intenda chiedere. Mi spiego meglio.

Aggiungere automaticamente il tag <br> in una pagina HTML

All’interno di una pagina web il modo corretto per andare a capo è utilizzare il tag <br>. Se la domanda "come andare a capo con PHP" è orientata a come aggiungere automaticamente il tag <br> ad un testo non formattato in HTML, la risposta alla domanda chiama in causa la funzione nl2br(). Questa funzione, infatti, trasforma i ritorni a capo "fisici" dell’utente (la pressione del tasto "invio" durante la battitura di un testo all’interno di una textarea, per intenderci) nel corrispettivo tag HTML.

echo nl2br($_POST['testo']);

Se apriamo il sorgente della pagina noteremo che al testo (inviato tramite il metodo POST da un ipotetico form) sono stati aggiunti i tag <br> in modo automatico, in corrispondenza dei ritorni a capo inseriti dall’utente in fase di digitazione.

Andare a capo all’interno di un file di testo

Se, viceversa, la domanda riguarda come generare un ritorno a capo all’interno di un file di testo (ad esempio un log) la risposta è differente. I ritorni a capo, infatti, sono rappresentati in informatica dalla sequenza \r\n (Carriage Return + Line Feed). Tale sequenza indica al terminale che il testo debba essere "spezzato" con un ritorno a capo e che quindi continuerà su una nuova riga.

In tal caso PHP dispone di una costante predefinita (PHP_EOL) che ha lo scopo, appunto, di indicare la fine della linea (EOL sta per End Of Line). Vediamo un esempio:

$linea1 = 'Esempio di testo semplice...';
$linea2 = 'Sono andato a capo con PHP';
echo '<pre>' . $linea1 . PHP_EOL . $linea2 . '</pre>';

Eseguendo il codice otterremo:

Esempio di testo semplice...
Sono andato a capo con PHP

Si noti che nell’esempio ho utilizzato il tag <pre> per rappresentare un testo preformattato, in altre parole il ritorno a capo viene mostrato a video anche se non c’è alcun tag <br> ma solo un ritorno a capo "fisico" (se non è chiaro vi consiglio di aprire il sorgente della vostra pagina).

E’ appena il caso di aggiungere che lo stesso effetto generato dalla costante PHP_EOL lo avremmo potuto ottenere in questo modo:

echo '<pre>' . $linea1 . "\r\n" . $linea2 . '</pre>';
Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Cannot modify header information – headers already sent: come risolvere l’errore PHP

L'errore di PHP cannot modify header information - headers...

Ricavare l’estensione di un file con PHP

Quando si lavora con i file in un'applicazione web,...

GD Library: creazione, manipolazione e ridimensionamento immagini con PHP

Le librerie GD (o GD Library), sono componenti fondamentali...

PHP: impostare il fuso orario italiano

Le tue pagine PHP non mostrano l’orario corretto? Probabilmente...

5 script PHP per gestire BBCode

A volte può aversi l'esigenza di dover offrire agli...
Pubblicitร