Función html_entity_decode() de PHP

Ejemplo

Convierte las entidades HTML en caracteres:

<?php
$str = "<© W3Sçh°°¦§>";
echo html_entity_decode($str);
?>

La salida HTML del código anterior es la siguiente (ver código fuente):

<!DOCTYPE html>
<html>
<body>
<? W3S?h????>
</body>
</html>

Salida del navegador del código anterior:

<? W3S?h????>

Definición y uso

La función html_entity_decode() convierte entidades HTML en caracteres.

La función html_entity_decode() es htmlentities() Función inversa.

Sintaxis

html_entity_decode(string,flags,character-set)
Parámetro Descripción
string Obligatorio. Especifica la cadena que se debe decodificar.
flags

Opcional. Especifica cómo se deben manejar las comillas y qué tipo de documento se debe usar.

Tipos de comillas disponibles:

  • ENT_COMPAT - predeterminado. Solo desencodifica comillas dobles.
  • ENT_QUOTES - desencodifica comillas dobles y simples.
  • ENT_NOQUOTES - no desencodifica ninguna comilla.

Flags adicionales para especificar el tipo de documento utilizado:

  • ENT_HTML401 - predeterminado. Se procesa como HTML 4.01.
  • ENT_HTML5 - se procesa como HTML 5.
  • ENT_XML1 - se procesa como XML 1.
  • ENT_XHTML - se procesa como XHTML.
character-set

Opcional. Valor de cadena que especifica el conjunto de caracteres a usar.

Valores permitidos:

  • UTF-8 - predeterminado. ASCII compatible con 8 bits de Unicode multibyte
  • ISO-8859-1 - Europa occidental
  • ISO-8859-15 - Europa occidental (añade símbolos de euro + letras francesas y finlandesas perdidas en ISO-8859-1)
  • cp866 - conjunto de caracteres cirílico específico de DOS
  • cp1251 - conjunto de caracteres cirílico específico de Windows
  • cp1252 - conjunto de caracteres europeo occidental específico de Windows
  • KOI8-R - ruso
  • BIG5 - chino tradicional, utilizado principalmente en Taiwán
  • GB2312 - chino simplificado, conjunto de caracteres de norma nacional
  • BIG5-HKSCS - Big5 con extensión de Hong Kong
  • Shift_JIS - japonés
  • EUC-JP - japonés
  • MacRoman - conjunto de caracteres utilizado por el sistema operativo Mac

Comentarios:En versiones anteriores a PHP 5.4, los conjuntos de caracteres no reconocidos se ignorarán y se reemplazarán con ISO-8859-1. A partir de PHP 5.4, los conjuntos de caracteres no reconocidos se ignorarán y se reemplazarán con UTF-8.

Detalles técnicos

Valor devuelto: Devuelve la cadena convertida
Versión de PHP: 4.3.0+

Registro de actualizaciones:

Versión Descripción
PHP 5 character-set El valor predeterminado del parámetro se cambia a UTF-8.
PHP 5.4

Se han añadido flags adicionales para especificar el tipo de documento al que se aplican las tablas de traducción:

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML
PHP 5.3.4 Se ha añadido soporte para la codificación de múltiples bytes.

Más ejemplos

Ejemplo 1

Convierte las entidades HTML en caracteres:

<?php
$str = "Bill & 'Steve'";
echo html_entity_decode($str, ENT_COMPAT); // Solo convertir comillas dobles
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // Convertir comillas dobles y simples
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // No convertir ninguna comilla
?>

Salida HTML del código anterior (ver código fuente):

<!DOCTYPE html>
<html>
<body>
Bill & 'Steve'<br>
Bill & 'Steve'<br>
Bill & 'Steve'
</body>
</html>

Salida del navegador del código anterior:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

Ejemplo 2

Al usar el conjunto de caracteres de Europa occidental, convierte las entidades HTML en caracteres:

<?php
$str = "My name is Øyvind Åsane. I'm Norwegian.";
echo html_entity_decode($str, ENT_QUOTES, "ISO-8859-1");
?>

Salida HTML del código anterior (ver código fuente):

<!DOCTYPE html>
<html>
<body>
Mi nombre es ?yvind ?sane. Soy noruego.
</body>
</html>

Salida del navegador del código anterior:

Mi nombre es ?yvind ?sane. Soy noruego.