Forum und email

htmlentities

(PHP 4, PHP 5)

htmlentities — Convertit tous les caractères éligibles en entités HTML

Description

string htmlentities ( string $string [, int $quote_style [, string $charset [, bool $double_encode ]]] )

htmlentities est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits.

Comme htmlspecialchars(), cette fonction prend un deuxième argument optionnel, qui indique comment doivent être traités les guillemets doubles et simples. Vous pouvez utiliser l'une des constantes suivantes la valeur par défaut étant ENT_COMPAT :

Constantes disponibles pour quote_style
Nom Description
ENT_COMPAT Convertit les guillemets doubles, et ignore les guillemets simples
ENT_QUOTES Convertit les guillemets doubles et les guillemets simples
ENT_NOQUOTES Ignore les guillemets doubles et les guillemets simples

Comme htmlspecialchars(), cette fonction prend un troisième argument optionnel qui définit le jeu de caractères utilisé durant la conversion. Actuellement, le jeu de caractères ISO-8859-1 est utilisé par défaut.

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

Jeux de caractères supportés
Jeux de caractères Alias Description
ISO-8859-1 ISO8859-1 Europe occidentale, Latin-1
ISO-8859-15 ISO8859-15 Europe occidentale, Latin-9. Dispose du signe Euro, des caractères spéciaux français et finlandais, qui manquent au Latin-1(ISO-8859-1).
UTF-8   Unicode 8 bits multi octets, compatible avec l'ASCII
cp866 ibm866, 866 Jeu de caractères Cyrillic spécifique à DOS. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1251 Windows-1251, win-1251, 1251 Jeu de caractères Cyrillic spécifique à Windows. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1252 Windows-1252, 1252 Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R koi8-ru, koi8r Russe. Ce jeu de caractères est supporté depuis PHP 4.3.2.
BIG5 950 Chinois traditionnel, principalement utilisé à Taiwan.
GB2312 936 Chinois simplifié, officiel.
BIG5-HKSCS   Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS SJIS, 932 Japonais
EUC-JP EUCJP Japonais

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

Lorsque double_encode est désactivé, PHP n'encodera pas les entités html existantes. Par défaut, tout est convertie.

Le paramètre double_quote a été ajouté en PHP 5.2.3, le paramètre charset en 4.1.0 et le paramètre quote en PHP 4.0.3.

Si vous voulez réaliser l'opération inverse, vous devez utiliser la fonction html_entity_decode().

Example#1 Exemple avec htmlentities()

<?php
$str 
'Un \'apostrophe\' en <strong>gras</strong>';

// Affiche : Un 'apostrophe' en &lt;strong&gt;gras&lt;/strong&gt;
echo htmlentities($str);

// Affiche : Un &#039;apostrophe&#039; en &lt;strong&gt;gras&lt;/strong&gt;
echo htmlentities($strENT_QUOTES);
?>

Voir aussi html_entity_decode(), get_html_translation_table(), htmlspecialchars(), nl2br() et urlencode().