Función html_entity_decode() de PHP

Ejemplo

Convierte las entidades HTML predefinidas "<" (menor que) y ">" (mayor que) en caracteres:

<?php
$str = "Este es algún texto <b>en negrita</b>.";
echo htmlspecialchars_decode($str);
?>

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

<!DOCTYPE html>
<html>
<body>
Este es algún texto <b>en negrita</b>.
</body>
</html>

La salida del navegador del código anterior es la siguiente:

Este es algún texto en negrita.

Definición y uso

La función htmlspecialchars_decode() convierte las entidades HTML predefinidas en caracteres.

Las entidades HTML que se desencodificarán son:

  • & Desencodifica a & (y)
  • " Desencodifica a " (comilla doble)
  • ' Desencodifica a ' (comilla simple)
  • < Desencodifica a < (menor que)
  • > Desencodifica a > (mayor que)

La función htmlspecialchars_decode() es el inverso de la función htmlspecialchars().

Sintaxis

htmlspecialchars_decode(string,flags)
Parámetro Descripción
string Obligatorio. Define la cadena que se debe desencodificar.
flags

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

Tipos de comillas disponibles:

  • ENT_COMPAT - Por defecto. Solo desencodificar comillas dobles.
  • ENT_QUOTES - Desencodificar comillas dobles y simples.
  • ENT_NOQUOTES - No desencodificar ninguna comilla.

Flags adicionales para el tipo de documento utilizado:

  • ENT_HTML401 - Por defecto. Tratamiento de código como HTML 4.01.
  • ENT_HTML5 - Tratamiento de código como HTML 5.
  • ENT_XML1 - Tratamiento de código como XML 1.
  • ENT_XHTML - Tratamiento de código como XHTML.

Detalles técnicos

Valor de retorno: Devuelve la cadena convertida.
Versión de PHP: 5.1.0+
Registro de actualizaciones:

En PHP 5.4, se añadieron flags adicionales para especificar el tipo de documento utilizado:

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML

Más ejemplos

Ejemplo 1

Convertir entidades HTML predefinidas a caracteres:

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

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

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

La salida del navegador del código anterior es la siguiente:

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

Ejemplo 2

Convertir entidades HTML predefinidas a comillas dobles:

<?php
$str = 'I love "PHP".';
echo htmlspecialchars_decode($str, ENT_QUOTES); // Convertir comillas dobles y simples
?>

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

<!DOCTYPE html>
<html>
<body>
Me encanta "PHP".
</body>
</html>

La salida del navegador del código anterior es la siguiente:

Me encanta "PHP".