Funções PHP |
. Glossários Funções PHP - html_entity_decode ( ) |
(PHP 4 >= 4.3.0, PHP 5)
html_entity_decode -- Converte
todas as entidades HTML para os seus caracteres
string html_entity_decode ( string string [,
int quote_style [, string charset]])
html_entity_decode() é o oposto da função htmlentities() no que converte todas as entidades HTML para os seus caracteres de string.
O segundo parâmetro, que é opcional, quote_style permite você definir o que será feito com 'apostrofos' e "aspas". Ele recebe uma constante entre três, sendo o padrão ENT_COMPAT:
Tabela 1. Constantes disponíveis para quote_style [ aqui ]
O conjunto de caracteres ISO-8859-1 é usado como padrão para o terceiro parâmetro, que é opcional, charset. Este defini o conjunto de caracteres usado na conversão. Suporte para este terceiro argumento foi adicionado no PHP 4.1.0.
Os seguintes conjuntos de caracteres são suportados no PHP 4.3.0 e posterior.
Tabela 2. Conjuntos de caracteres suportados [ aqui ]
Nota: Qualquer outro conjunto de caracteres não é reconhecido e será usado o ISO-8859-1.
Exemplo:
Exemplo 1. Decodificando 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
// Para versões anteriores ao PHP
4.3.0 você deve fazer isto:
function unhtmlentities ($string)
{
$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
return strtr ($string, $trans_tbl);
}
$c = unhtmlentities($a);
echo $c; // I'll "walk" the <b>dog</b>
now
?>
Nota: Você deve imaginar porque trim(html_entity_decode(' ')); não reduz a string para uma string vazia, isto é porque a entidade ' ' não é o código ASCII 32 (o qual é retirado por trim()) mas o caracter ASCII 160 (0xa0) no conjunto de caracteres padrão.
Veja também htmlentities(), htmlspecialchars(), get_html_translation_table(), htmlspecialchars() e urldecode().