Corsi on-line

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.

Post correlati
I più letti del mese
Tematiche