htmlspecialchars
-- Convertit les caractères
spéciaux en entités
HTML
string htmlspecialchars
( string string [, int quote_style
[, string charset]] )
Certains caractères ont des
significations spéciales en
HTML, et doivent être remplacés
par des entités HTML pour être
affichés. htmlspecialchars()
remplace tous ces caractères
par leur équivalent dans la
chaîne string. Cette conversion
est très pratique pour la programmation
web. Si vous devez remplacer tous
les caractères, utilisez plutôt
htmlentities() à la place.
htmlspecialchars() est pratique pour
éviter que des données
fournies par les utilisateurs contiennent
des balises HTML, comme pour un forum
ou un chat. 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 : ENT_COMPAT,
la constante par défaut, va
convertir les guillemets doubles et
ignorer les guillemets simples; ENT_QUOTES
va convertir les guillemets doubles
et les guillemets simples; ENT_NOQUOTES
va ignorer les guillemets doubles
et les guillemets simples.
Les remplacements effectués
sont :
"&" (et commercial)
devient "&"
""" (guillemets doubles)
devient """ lorsque
ENT_NOQUOTES n'est pas utilisée.
"'" (single quote) devient
"'" uniquement
lorsque ENT_QUOTES est utilisée.
"<" (inférieur
à) devient "<"
">" (supérieur
à) devient ">"
Exemple 1. Exemple avec htmlspecialchars()
<?php
$new = htmlspecialchars("<a
href='test'>Test</a>",
ENT_QUOTES);
echo $new;
// <a href='test'>Test</a>
?>
Notez que cette fonction ne fait aucun
autre remplacement que ceux qui sont
listés ci-dessus. Pour faire
un remplacement total, voyez plutôt
htmlentities().
Le support pour le second argument
optionnel a été ajouté
en PHP 3.0.17 et PHP 4.0.3.
Cette fonction prend un troisième
argument optionnel qui définit
le jeux de caractères utilisé
durant la conversion. Le jeu de caractères
par défaut est ISO-8859-1.
Le support de cet argument a été
ajouté en PHP 4.1.0.
Les jeux de caractères suivants
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 |
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.
Voir aussi get_html_translation_table(),
htmlspecialchars_decode(),
strip_tags(), htmlentities()
et nl2br().
|