Função html_entity_decode() do PHP

Exemplo

Converter as entidades HTML pré-definidas "<" (menor que) e ">" (maior que) em caracteres:

<?php
$str = "Este é algum texto <b>em negrito</b>.";
echo htmlspecialchars_decode($str);
?>

A saída HTML do código acima é como segue (ver código-fonte):

<!DOCTYPE html>
<html>
<body>
Este é algum texto <b>em negrito</b>.
</body>
</html>

A saída do navegador do código acima é:

Este é algum texto em negrito.

Definição e uso

A função htmlspecialchars_decode() converte entidades HTML pré-definidas em caracteres.

As entidades HTML que serão decodificadas são:

  • & Decodificado para & (e)
  • " Decodificado para " (aspas duplas)
  • ' Decodificado para ' (aspas simples)
  • < Decodificado para < (menor que)
  • > Decodificado para > (maior que)

A função htmlspecialchars_decode() é o inverso da função htmlspecialchars().

Sintaxe

htmlspecialchars_decode(string,flags)
Parâmetro Descrição
string Obrigatório. Determinar a string a ser decodificada.
flags

Opcional. Determinar como as aspas devem ser tratadas e qual tipo de documento deve ser usado.

Tipos de aspas disponíveis:

  • ENT_COMPAT - Padrão. Apenas descodificar aspas duplas.
  • ENT_QUOTES - Descodificar aspas duplas e simples.
  • ENT_NOQUOTES - Não descodificar nenhuma aspas.

Flags adicionais para o tipo de documento utilizado:

  • ENT_HTML401 - Padrão. Tratar código como HTML 4.01.
  • ENT_HTML5 - Tratar código como HTML 5.
  • ENT_XML1 - Tratar código como XML 1.
  • ENT_XHTML - Tratar código como XHTML.

Detalhes Técnicos

Retorno: Retorna a string convertida.
Versão PHP: 5.1.0+
Registro de Atualizações:

No PHP 5.4, foram adicionados flags adicionais para especificar o tipo de documento a ser usado:

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML

Mais Exemplos

Exemplo 1

Converter caracteres HTML pré-definidos para caracteres:

<?php
$str = "Bill & 'Steve'";
echo htmlspecialchars_decode($str, ENT_COMPAT); // Converter apenas aspas duplas
echo "<br>";
echo htmlspecialchars_decode($str, ENT_QUOTES); // Convertir aspas duplas e singlas
echo "<br>";
echo htmlspecialchars_decode($str, ENT_NOQUOTES); // Não converter nenhuma aspa
?>

A saída HTML do código acima é como segue (ver código-fonte):

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

A saída do navegador do código acima é:

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

Exemplo 2

Converter caracteres HTML pré-definidos para aspas duplas:

<?php
$str = 'I love "PHP".';
echo htmlspecialchars_decode($str, ENT_QUOTES); // Convertir aspas duplas e singlas
?>

A saída HTML do código acima é como segue (ver código-fonte):

<!DOCTYPE html>
<html>
<body>
Eu amo "PHP".
</body>
</html>

A saída do navegador do código acima é:

Eu amo "PHP".