(PHP 4 >= 4.3.0, PHP 5)
html_entity_decode — Convierte todas las entidades HTML a sus caracteres correspondientes
$string
   [, int $flags = ENT_COMPAT | ENT_HTML401
   [, string $encoding = 'UTF-8'
  ]] )
   html_entity_decode() es el opuesto de
   htmlentities() en el sentido de que convierte todas las entidades HTML
   del string a sus caracteres correspondientes.
  
Para ser más precisos, esta función decodifica todas las entidades (incluyendo todas las entidades numéricas) que a) sean necesariamente válidas para el tipo de documento elegido — es decir, para XML, esta función no decodifica las entidades con nombres que podrían estar definidas en algunos DTD — y b) aquellos caracteres que están en el conjunto de caracteres codificado asociado con la codificación elegida y que están permitidos en el tipo de documento elegido. Todas las demás entidades se dejan tal cual.
stringEl string de entrada.
flagsUna máscara de bits de una o más de las siguientes banderas, las cuales especifican cómo manejar las comillas y el tipo de documento utilizado. El valor predeterminado es ENT_COMPAT | ENT_HTML401.
| Nombre de constante | Descripción | 
|---|---|
| ENT_COMPAT | Convertirá las comillas dobles y sólo dejará las comillas simples. | 
| ENT_QUOTES | Convertirá tanto las comillas dobles como las simples. | 
| ENT_NOQUOTES | Dejará tanto las comillas dobles como las simples sin convertir. | 
| ENT_HTML401 | Maneja el código como HTML 4.01. | 
| ENT_XML1 | Maneja el código como XML 1. | 
| ENT_XHTML | Maneja el código como XHTML. | 
| ENT_HTML5 | Maneja el código como HTML 5. | 
encodingLa codificación a usar. Si se omite, el valor predeterminado de este argumento es ISO-8859-1 en versiones de PHP anteriores a 5.4.0, y UTF-8 desde PHP 5.4.0 en adelante.
Los siguientes juegos de caracteres están soportados:
| Juego de caracteres | Alias | Descripción | 
|---|---|---|
| ISO-8859-1 | ISO8859-1 | Europeo Occidental, Latin-1. | 
| ISO-8859-5 | ISO8859-5 | Juego de caracteres cirílicos poco usado (Latin/Cyrillic). | 
| ISO-8859-15 | ISO8859-15 | Europeo Occidental, Latin-9. Añade el signo de Euro, y letras del Francés y Finlandés que hacián falta en Latin-1 (ISO-8859-1). | 
| UTF-8 | Multi-byte Unicode de 8-bits compatible con ASCII. | |
| cp866 | ibm866, 866 | Juego de caracteres Cirílico específico de DOS. | 
| cp1251 | Windows-1251, win-1251, 1251 | Juego de caracteres Cirílicos específico de Windows. | 
| cp1252 | Windows-1252, 1252 | Juego de caracteres específico de Windows para Europa Occidental. | 
| KOI8-R | koi8-ru, koi8r | Ruso. | 
| BIG5 | 950 | Chino Tradicional, usado principalmente en Taiwán. | 
| GB2312 | 936 | Chino Simplificado, juego de caracteres estándar nacional. | 
| BIG5-HKSCS | Big5 con extensiones de Hong Kong, Chino Tradicional. | |
| Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japonés | 
| EUC-JP | EUCJP, eucJP-win | Japonés | 
| MacRoman | Juego de caracteres que fue utilizado por Mac OS. | |
| '' | Un string vacío activa la detección desde la codificación del script (Zend multibyte), default_charset y la actual configuración regional (ver nl_langinfo() y setlocale()), en este orden. No se recomienda. | 
Nota: Cualquier otro juego de caracteres no es reconocido. La codificación por defecto será utilizada en su lugar y se emitirá una advertencia.
Devuelve el string descodificado.
| Versión | Descripción | 
|---|---|
| 5.4.0 | La codificación predeterminada fue cambiada de ISO-8859-1 a UTF-8. | 
| 5.4.0 | Fueron agregadas las constantes ENT_HTML401,ENT_XML1,ENT_XHTMLyENT_HTML5. | 
| 5.0.0 | Se agregó el soporte para codificaciones multibyte. | 
Ejemplo #1 Decodificación de entidades HTML
<?php
$orig = "I'll \"walk\" the <b>dog</b> now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll "walk" the <b>dog</b> now
echo $b; // I'll "walk" the <b>dog</b> now
?>
Nota:
Puede que se pregunte por qué trim(html_entity_decode(' ')); no reduce el string aun string vacía. Esto es porque la entidad ' ' no es el código ASCII 32 (el cual es eliminado por trim()), sino el código ASCII 160 (0xa0) en la codificación ISO 8859-1.