Funciones de strings
PHP Manual

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

html_entity_decodeConvierte todas las entidades HTML a sus caracteres correspondientes

Descripción

string html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") ]] )

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.

Parámetros

string

El string de entrada.

flags

Una máscara de bits de uno o más de los siguientes indicadores, los cuales especifican cómo manejar las comillas y el tipo de documento utilizado. El valor predeterminado es ENT_COMPAT | ENT_HTML401.

Constantes disponibles para flags
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 Manejar el código como HTML 4.01.
ENT_XML1 Manejar el código como XML 1.
ENT_XHTML Manejar el código como XHTML.
ENT_HTML5 Manejar el código como HTML 5.

encoding

Un argumento opcional que define la codificación empleada al convertir caracteres.

Si se omite, el valor predeterminado de encoding varía según la versión de PHP en uso. En PHP 5.6 y posterior, la opción de configuración default_charset se emplea como valor predeterminado. PHP 5.4 y 5.5 utilizarán UTF-8 como valor predeterminado. Las versiones anteriores de PHP emplean ISO-8859-1.

Aunque este argumento es técnicamente opcional, se recomienda especificar el valor correcto para el código si se utiliza PHP 5.5 o anterior, o si la opción de configuración default_charset podría estar establecida incorrectamente para la entrada dada.

Están soportados los siguientes juegos de caracteres:

Juegos de caracteres 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 ausentes en Latin-1 (ISO-8859-1).
UTF-8   Unicode de 8 bit multibyte 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ílico 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 (véase nl_langinfo() y setlocale()), en este orden. No se recomienda.

Nota: No se reconoce cualquier otro juego de caracteres. Será utilizada en su lugar la codificación por defecto y se emitirá una advertencia.

Valores devueltos

Devuelve el string descodificado.

Historial de cambios

Versión Descripción
5.6.0 El valor predeterminado para el parámetro encoding se cambió para que fuera el valor de la opción de configuración default_charset.
5.4.0 La codificación predeterminada se cambió de ISO-8859-1 a UTF-8.
5.4.0 Se añadieron las constantes ENT_HTML401, ENT_XML1, ENT_XHTML y ENT_HTML5.

Ejemplos

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 &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b// I'll "walk" the <b>dog</b> now
?>

Notas

Nota:

Puede que se pregunte por qué trim(html_entity_decode('&nbsp;')); no reduce el string a un string vacío. Esto es porque la entidad '&nbsp;' 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.

Ver también


Funciones de strings
PHP Manual