Manuel PHP
Précédent |  | Suivant

# html_entity_decode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decode -- Convertit toutes les entités HTML en caractères normaux

## Description

string html_entity_decode ( string string [, int quote_style [, string charset]])

html_entity_decode() est la fonction contraire de htmlentities() : elle convertit les entités HTML de la chaîne `string` en caractères normaux.

Le paramètre optionnel `quote_style` vous permet de définir ce qu'il adviendra des guillemets simples et doubles. Ce paramètre prend l'une des valeurs suivantes (et la valeur par défaut est `ENT_COMPAT`) :

Tableau 1. Constantes disponibles pour `quote_style`

Constante | Description
--- | ---
`ENT_COMPAT` | Convertit les guillemets doubles et ignore les guillemets simples.
`ENT_QUOTES` | Convertit les guillemets doubles et les guillemets simples.
`ENT_NOQUOTES` | Convertit les guillemets simples et ignore les guillemets doubles.

Le jeu de caractères ISO-8859-1 est utilisé par défaut, comme paramètre `charset`. Ce paramètre permet de choisir le jeu de caractères utilisés dans la conversion.

Les jeux de caractères suivantes sont disponibles et supportés par `PHP` 4.3.0 et plus récent.

Tableau 2. Jeux de caractères supportés

Jeux de caractères | Description
--- | ---
ISO-8859-1 | Europe occidentale, Latin-1
ISO-8859-15 | Europe occidentale, Latin-9. Dispose du signe Euro, des caractères spéciaux français et finlandais, qui manque au Latin-1(ISO-8859-1).
UTF-8 | Unicode 8 bits multi octets, compatible avec l'ASCII
cp1252 | Jeux de caractères spécifique de Windows pour l'Europe occidentale.
BIG5 | Chinois traditionnel, principalement utilisé à Taiwan.
GB2312 | Chinois simplifié, officiel.
BIG5-HKSCS | Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS | Japonais
EUCJP | Japonais

> Note : Les autres jeux de caractères ne sont pas reconnus, et le ISO-8859-1 sera utilisé à la place.

Exemple 1. Décoder des entités HTML

`<?php
$orig = "J'ai \"sorti\" le <b>chien</b> tout à l'heure";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // J'ai &quot;sorti&quot; le &lt;b&gt;chien&lt;/b&gt; tout &amp;agrave; l'heure
echo $b; // J'ai "sorti" le <b>chien</b> tout à l'heure
// Pour les utilisateurs ayant des versions antérieures à PHP 4.3.0 :
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;
// J'ai "sorti" le <b>chien</b> tout à l'heure
?>`

> Note : Vous pourriez vous demander pouquoi trim(html_entity_decode('&nbsp;')); ne résuit pas la chaîne à la chaîne vide. C'est parceque l'entité '&nbsp;' n'est pas un code ASCII 32 (qui serait supprimé par trim()) mais un code ASCII 160 (0xa0) dans le jeu de caractères par défaut ISO 8859-1.

Voir aussi htmlentities(), htmlspecialchars(), get_html_translation_table(), htmlspecialchars() et urldecode().

Précédent | Sommaire | Suivant
hebrevc | Niveau supérieur | htmlentities