Programmazione Web » Php » Scegliere quando andare a capo: la funzione wordwrap
Scegliere quando andare a capo: la funzione wordwrap
Difficoltà:
Scritto da Michele Sassi
Sito Web: http://www.comefaccio.net ![]()
Questo tutorial è stato letto 1260 volte
Parliamo di word wrap automatico quando un browser ha la tendenza a mandare a capo il testo in automatico. Per ovvi motivi può essere necessario dover stabilire esattamente quando andare a capo.
Per venirci in contro il Php ci mette a disposizione una funzione per ovviare a questo problema, rendendo totalmente indipendente la stampa a video del nostro testo. Stiamo parlando della funzione wordwrap().
Eccone la sintassi base:
<?php
$testo = "Scegliamo come formattare i nostri testi grazie a wordwrap" ;
$testo = wordwrap ( $testo , 20 , "<br />" );
print $testo ;
?>
Alla funzione è possibile passare dei parametri che indicano la lunghezza della riga e il marcatore di nuova riga. Omettendo questi parametri, per default, la funzione spezzerà ogni riga al 75° carattere utilizzando "\n" come marcatore di nuova linea. Nel nostro caso abbiamo deciso di suddividere il testo in linee lunghe al massimo 20 caratteri usando il marcatore <br />. Otterremo pertanto una visualizzazione simile alla seguente:
Scegliamo come
formattare i nostri
testi grazie a
wordwrap
Il nostro testo sarà pertanto visualizzato su quattro righe, ognuna delle quali avrà al massimo 20 caratteri o meno, ma non di più!
L'unico caso in cui una riga può superare il numero di caratteri stabiliti nella funzione è quello in cui una parola è lunga più del numero massimo stabilito. In tal caso è possibile passare "1" come quarto parametro della funzione:
<?php
$testo = "Si addormentò prima di sera" ;
$testo = wordwrap ( $testo , 8 , "<br />" , 1 );
print $testo ;
?>
In questo caso la parola "addormentò" è più lunga degli 8 caratteri massimi specificati nella funzione. Aggiungendo l' "1" come quarto parametro permetteremo alla funzione di spezzettare anche tale parola, ottenendo il seguente output:
Si
addormen
tò prima
di sera

