Convertissez les caractères prédéfinis "<" (inférieur à) et ">" (supérieur à) en entités HTML :
<?php $str = " Ceci est du texte <b>gras</b>. " ; htmlspecialchars ( $str ) ? >La sortie HTML du code ci-dessus est la suivante (voir le code source) :
< ! HTML > <html> < corps > Ceci est du texte & lt ; gras & lt ; </html>La sortie du navigateur du code ci-dessus est la suivante :
Ceci est du texte <b>gras</b>.La fonction htmlspecialchars() convertit certains caractères prédéfinis en entités HTML.
Les caractères prédéfinis sont :
& (esperluette) devient &
" (guillemet double) devient "
' (guillemet simple) devient '
< (inférieur à) devient <
> (supérieur à) devenir>
Astuce : Pour reconvertir des entités HTML spéciales en caractères, utilisez la fonction htmlspecialchars_decode().
htmlspecialchars ( chaîne, drapeaux, jeu de caractères, double_encode )
paramètre | décrire |
---|---|
chaîne | Requis. Spécifie la chaîne à convertir. |
drapeaux | Facultatif. Spécifie comment gérer les guillemets, les encodages non valides et quel type de document utiliser. Types de devis disponibles : ENT_COMPAT - Par défaut. Seuls les guillemets doubles sont codés. ENT_QUOTES - Encode les guillemets doubles et simples. ENT_NOQUOTES - Ne coder aucun guillemet. Encodage invalide : ENT_IGNORE - Ignore les encodages invalides au lieu de laisser la fonction renvoyer une chaîne vide. Cela doit être évité car cela pourrait avoir un impact sur la sécurité. ENT_SUBSTITUTE - Remplace un codage invalide avec le caractère spécifié par le caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD; au lieu de renvoyer une chaîne vide. ENT_DISALLOWED - Remplace les points de code non valides dans le type de document spécifié par les caractères de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD;. Indicateurs supplémentaires spécifiant le type de document à utiliser : ENT_HTML401 - Par défaut. Code traité en HTML 4.01. ENT_HTML5 - code traité en HTML 5. ENT_XML1 - Code traité en XML 1. ENT_XHTML - comme code de traitement XHTML. |
jeu de caractères | Facultatif. Une chaîne spécifiant le jeu de caractères à utiliser. Valeurs autorisées : UTF-8 - Par défaut. Unicode 8 bits multi-octets compatible ASCII ISO-8859-1 - Europe occidentale ISO-8859-15 - Europe occidentale (ajout du symbole de l'euro + lettres françaises et finlandaises manquantes dans l'ISO-8859-1) cp866 - Jeu de caractères cyrilliques spécifiques au DOS cp1251 - Jeu de caractères cyrilliques spécifique à Windows cp1252 - Jeu de caractères d'Europe occidentale spécifique à Windows KOI8-R - Russe BIG5 - Chinois traditionnel, principalement utilisé à Taiwan GB2312 - Chinois simplifié, jeu de caractères standard national BIG5-HKSCS - Big5 avec extension Hong Kong Shift_JIS - japonais EUC-JP - Japonais MacRoman - Jeu de caractères utilisé par le système d'exploitation Mac Remarque : Dans les versions antérieures à PHP 5.4, les jeux de caractères non reconnus étaient ignorés et remplacés par ISO-8859-1. Depuis PHP 5.4, les jeux de caractères non reconnus sont ignorés et remplacés par UTF-8. |
double_encode | Facultatif. Valeur booléenne qui spécifie s'il faut encoder les entités HTML existantes. VRAI - Par défaut. Chaque entité sera convertie. FAUX - Les entités HTML existantes ne seront pas encodées. |
Valeur de retour : | Renvoie la chaîne convertie. Si la chaîne contient un encodage non valide, une chaîne vide est renvoyée sauf si l'indicateur ENT_IGNORE ou ENT_SUBSTITUTE est défini. |
---|---|
Version PHP : | 4+ |
Journal de mise à jour : | Dans PHP 5, la valeur par défaut du paramètre de jeu de caractères est devenue UTF-8. En PHP 5.4, nouveaux : ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 et ENT_XHTML. Dans PHP 5.3, ENT_IGNORE a été ajouté. Dans PHP 5.2.3, le paramètre double_encode a été ajouté. Dans PHP 4.1, le paramètre caractère-set a été ajouté. |
Convertissez certains caractères prédéfinis en entités HTML :
<?php $str = " Jane & 'Tarzan' " ; htmlspecialchars ( $str , ENT_COMPAT ) ; // Par défaut, seuls les guillemets doubles sont codés écho " <br> " ; écho htmlspecialchars ( $str , ENT_QUOTES ) ; // Encoder les guillemets doubles et simples écho " <br> " ; écho htmlspecialchars ( $str , ENT_NOQUOTES ) ; // Ne coder aucun guillemet ?>La sortie HTML du code ci-dessus est la suivante (voir le code source) :
< ! HTML > <html> < corps > Jane et ' Tarzan ' < br > Jane et ' Tarzan' < br > Jane et ' Tarzan ' < / corps > </html>La sortie du navigateur du code ci-dessus est la suivante :
Jane et 'Tarzan'Jane et 'Tarzan'Jane et 'Tarzan'Convertissez les guillemets doubles en entités HTML :
<?php $str = ' J'adore "PHP " ; htmlspecialchars ( $str , ENT_QUOTES ) ; // Encoder les guillemets doubles et simples ?> ;La sortie HTML du code ci-dessus est la suivante (voir le code source) :
< ! HTML > <html> < corps > J'adore & quot ; PHP & quot ; </html>La sortie du navigateur du code ci-dessus est la suivante :
J'adore "PHP".