Novità per la funzione htmlspecialchars() in PHP 5.4.0
Tra le novità introdotte con la versione 5.4.0 di PHP ve ne sono alcune che coinvolgono la funzione nativa htmlspecialchars(); tali modifiche riguardano anche altre features correlate quali htmlentities() e parzialmente anche htmlspecialchars_decode(), html_entity_decode() e get_html_translation_table(). Nello specifico i miglioramenti apportati riguardano:
- l’adozione di UTF-8 come set di caratteri predefinito: htmlspecialchars() accetta come terzo parametro il riferimento ad un charset, ma spesso tale argomento non viene specificato, ne consegue che la funzione utilizza il set di caratteri di default; fino alla release 5.3.x quest’ultimo era ISO-8859-1, fattore che creava dei problemi di corrispondenza con il più utilizzato encoding UTF-8.
- nuova gestione degli errori: è stata introdotta l’opzione ENT_SUBSTITUTE, a differenza della preesistente ENT_IGNORE (ancora disponibile) essa non rigetta le sequenze di unità di codice non valide, ma le sotituisce tramite un rimpiazzo basato sull’encoding U+FFFD, come per esempio i noti caratteri “�”.
- gestione del Doctype: PHP introduce ora per la funzione le flags:
- ENT_HTML401 per HTML 4.01, che è poi quella predefinita;
- ENT_HTML5 per HTML 5;
- ENT_XML1 per XML 1;
- ENT_XHTML perXHTML.
Così, per esempio, applicando il var_dump() di htmlspecialchars() con ENT_HTML401 su un singolo apice si otterrà come output “‘”, metre con flag ENT_HTML5 il risultato sarà “'”.
Per eventuali approfondimenti vi consiglio la lettura di questo interessante approfondimento di Nikita Popov riguardante l’argomento.
Naviga tra i post del Blog
Commenti
I commenti sono sottoposti alle linee guida di moderazione e prima di essere visibili devono essere approvati da un moderatore.