Corsi on-line

html_substr(): tagliare codice HTML preservando i tags

Sviluppando un sito per un cliente mi sono trovato davanti alla necessità di operare automaticamente dei “tagli” su vari contenuti HTML (nello specifico “post” estratti da alcuni blog aziendali) al fine di crearne delle anteprime.
La prima soluzione che mi è venuta in mente è stata, ovviamente, la più facile: eliminare il markup HTML con strip_tags() e poi fare un bel taglio con la funzione substr().

Tutto perfetto. Peccato che al cliente questa soluzione non è piaciuta affatto. La sua esigenze era di preservare la formattazione HTML (grassetto, link, immagini, video, ecc) anche all’interno delle anteprime!
Il problema, come potete immaginare, si è rivelato ben più complesso del previsto! L’utilizzo di substr(), ovviamente, non era più possibile in quanto ciò causa tagli arbitari del codice HTML fregandosene altamente di TAG aperti o altro.

Con un po’ di pazienza, e con l’aiuto del mio fidato alleato Google, ho trovato in Rete la funzione che faceva al caso mio ed ho subito provveduto a pubblicarla nella sezione script di Mr.Webmaster. La funzione in questione si chiama html_substr() e la potete scaricare da questa pagina.

Il suo utilizzo è semplicissimo, ecco un esempio:

// includo il codice della funzione presente nello zip
include "html_substr.php";

// variabile con codice HTML
$codice = <<<HTML
<p>Ciao a tutti! Questo è un <em>codice HTML</em> e vorrei tagliarlo
preservando i <strong>tags</strong></p>
HTML;

// applico la funzione
echo html_substr($codice, 50);

// Questo l'output:
// <p>Ciao a tutti! Questo è un <em>codice HTML</em> e vorrei...</p>

La funzione, come potete vedere, ammette due parametri: il codice HTML da tagliare, il numero dei caratteri dopo i quali effettuare il taglio. Semplice ed efficace.

Post correlati
I più letti del mese
Tematiche