html_entity_decode Convertit toutes les entités HTML en caractères normaux Description stringhtml_entity_decode stringstring intquote_style stringcharset html_entity_decode est la fonction contraire de htmlentities : elle convertit les entités HTML de la chaîne string en caractères normaux. Le paramètre optionnel quote_style vous permet de définir ce qu'il adviendra des guillemets simples et doubles. Ce paramètre prend l'une des valeurs suivantes (et la valeur par défaut est ENT_COMPAT) : Constantes disponibles pour <parameter>quote_style</parameter> Constante Description ENT_COMPAT Convertit les guillemets doubles et ignore les guillemets simples. ENT_QUOTES Convertit les guillemets doubles et les guillemets simples. ENT_NOQUOTES Convertit les guillemets simples et ignore les guillemets doubles.
Le jeu de caractères ISO-8859-1 est utilisé par défaut, comme paramètre charset. Ce paramètre permet de choisir le jeu de caractères utilisés dans la conversion. &reference.strings.charsets; Décoder des entités HTML chien tout à l\'heure'; $a = htmlentities($orig); $b = html_entity_decode($a); echo $a; // J'ai "sorti" le <strong>chien</strong> tout &agrave; l'heure echo $b; // J'ai "sorti" le chien tout à l'heure // Pour les utilisateurs ayant des versions antérieures à PHP 4.3.0 : function unhtmlentities ($string) { $trans_tbl = get_html_translation_table (HTML_ENTITIES); $trans_tbl = array_flip ($trans_tbl); return strtr ($string, $trans_tbl); } $c = unhtmlentities($a); echo $c; // J'ai "sorti" le chien tout à l'heure ?> ]]> Vous pourriez vous demander pourquoi trim(html_entity_decode('&nbsp;')); ne réduit pas la chaîne à la chaîne vide. C'est parce que l'entité &nbsp; n'est pas un code ASCII 32 (qui serait supprimé par trim) mais un code ASCII 160 (0xa0) dans le jeu de caractères par défaut ISO 8859-1. Voir aussi htmlentities, get_html_translation_table, htmlspecialchars et urldecode.