Chiunque abbia utilizzato un editor HTML visuale (come ad esempio Adobe Dreamweaver, Microsoft FrontPage o, i più recenti, Microsoft Expression Web e Sharepoint Designer), ma anche un qualsiasi CMS, si sarà sicuramente reso conto di quanto codice superfluo viene generato da questi programmi.
Sebbene possa sembrare una sciocchezza, questo comporta una maggiore dimensione della pagina (e/o dell’intero sito), una minore ottimizzazione e, verosimilmente, problemi di sicurezza.
HTML Purifier è una libreria in PHP che assicura: sicurezza (rimuove il codice maligno, conosciuto come XSS), pulizia del codice (analizza il codice al fine di renderlo pulito, conforme agli standard e alle specifiche W3C) e apertura alle modifiche (è open source e, di conseguenza, altamente personalizzabile).
Installazione
L’installazione è facile: dopo aver il pacchetto di installazione dal sito, decomprimetelo sul vostro PC locale e poi trasferite la cartella library, sullo spazio web.
Ora impostate come scrivibile (chmod 755 o 777) la cartella:
/path/to/library/HTMLPurifier/DefinitionCache/Serializer
dove /path/to/library/, è il percorso sul server fino alla cartella indicata.
Configurazione
Anzitutto è necessaria l’inclusione della libreria:
require_once '/path/to/library/HTMLPurifier.auto.php';
In moltissimi casi, questo già basta per permettere ad HTML Purifier di funzionare correttamente, ma, se il vostro Doctype fosse diverso da XHTML Transitional e il vostro set di caratteri diverso da UTF-8, sono necessarie delle ulteriori e semplici modifiche:
require_once '/path/to/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'ISO-8859-1');
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');
In questo caso, abbiamo modificato il Doctype in XHTML 1.0 Strict e il set di caratteri in ISO-8859-1.
Esempio di utilizzo
Infine, vediamo un esempio pratico di funzionamento di HTML Purifier:
<?php
$dirty_html = "... codice HTML non ripulito ...";
$purifier = new HTMLPurifier();
$clean_html = $purifier->purify( $dirty_html );
echo $clean_html
?>
Nella variabile $dirty_html è contenuto il codice iniziale, mentre, in $clean_html, il codice ripulito ed ottimizzato!
Plugin
I meno esperti o i pigroni (!), possono semplicemente integrare HTML Purifier, tramite plugin, ai più noti CMS, come WordPress, Drupal e Joomla!