PHP htmlspecialchars() Fonction

❮ Référence de chaîne PHP

Exemple

Convertir les caractères prédéfinis "<" (inférieur à) et ">" (supérieur à) en entités HTML :

<?php
$str = "Ceci est un texte <b>gras</b>.";
echo htmlspecialchars($str);
?>

La sortie HTML du code ci-dessus sera (Voir la source) :

<!DOCTYPE html>
<html>
<body>
Ceci est un texte &lt;b&gt;gras&lt;/b&gt;.
</body>
</html>

La sortie du navigateur du code ci-dessus sera :

Ceci est un texte <b>gras</b>.
Essayez-le vous-même »

Définition et Utilisation

La fonction htmlspecialchars() convertit certains caractères prédéfinis en entités HTML.

Les caractères prédéfinis sont :

  • & (esperluette) devient &amp;
  • " (guillemet double) devient &quot;
  • ' (guillemet simple) devient &#039;
  • < (inférieur à) devient &lt;
  • > (supérieur à) devient &gt;

Conseil : Pour convertir les entités HTML spéciales en caractères, utilisez la fonction htmlspecialchars_decode() .


Syntaxe

htmlspecialchars( chaîne,flags,encodage,double_encode )

Valeurs des Paramètres

Paramètre Description
chaîne Requis. Spécifie la chaîne à convertir
flags Optionnel. Spécifie comment gérer les guillemets, l'encodage invalide et le type de document utilisé.

Les styles de guillemets disponibles sont :

  • ENT_COMPAT - Encode uniquement les guillemets doubles
  • ENT_QUOTES - Par défaut. Encode les guillemets doubles et simples
  • ENT_NOQUOTES - N'encode aucun guillemet

Encodage invalide :

  • ENT_IGNORE - Ignore l'encodage invalide au lieu de faire retourner une chaîne vide par la fonction. À éviter, car cela peut avoir des implications de sécurité.
  • ENT_SUBSTITUTE - Remplace l'encodage invalide pour un jeu de caractères spécifié par un caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD; au lieu de retourner une chaîne vide.
  • ENT_DISALLOWED - Remplace les points de code qui sont invalides dans le doctype spécifié par un caractère de remplacement Unicode U+FFFD (UTF-8) ou &#FFFD;

Drapeaux supplémentaires pour spécifier le doctype utilisé :

  • ENT_HTML401 - Par défaut. Traite le code comme HTML 4.01
  • ENT_HTML5 - Traite le code comme HTML 5
  • ENT_XML1 - Traite le code comme XML 1
  • ENT_XHTML - Traite le code comme XHTML
encodage Optionnel. Une chaîne qui spécifie quel jeu de caractères utiliser.

Les valeurs autorisées sont :

  • UTF-8 - Par défaut. Unicode multi-octets 8 bits compatible ASCII
  • ISO-8859-1 - Européen occidental
  • ISO-8859-15 - Européen occidental (ajoute le signe Euro + lettres françaises et finlandaises manquantes dans ISO-8859-1)
  • cp866 - Jeu de caractères cyrillique spécifique à DOS
  • cp1251 - Jeu de caractères cyrillique spécifique à Windows
  • cp1252 - Jeu de caractères spécifique à Windows pour l'européen occidental
  • KOI8-R - Russe
  • BIG5 - Chinois traditionnel, principalement utilisé à Taïwan
  • GB2312 - Chinois simplifié, jeu de caractères standard national
  • BIG5-HKSCS - Big5 avec extensions de Hong Kong
  • Shift_JIS - Japonais
  • EUC-JP - Japonais
  • MacRoman - Jeu de caractères utilisé par Mac OS
double_encode Optionnel. Une valeur booléenne qui spécifie s'il faut encoder les entités HTML existantes ou non.
  • TRUE - Par défaut. Convertira tout
  • FALSE - N'encoder pas les entités HTML existantes


Détails Techniques

Valeur de Retour : Retourne la chaîne convertie

Si la chaîne contient un encodage invalide, elle retournera une chaîne vide, sauf si les drapeaux ENT_IGNORE ou ENT_SUBSTITUTE sont définis
Version PHP : 4+

Plus d'Exemples

Exemple

Convertir certains caractères prédéfinis en entités HTML :

<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Ne convertira que les guillemets doubles
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Convertit les guillemets doubles et simples
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Ne convertit aucun guillemet
?>

La sortie HTML du code ci-dessus sera (Voir la source) :

<!DOCTYPE html>
<html>
<body>
Jane &amp; 'Tarzan'<br>
Jane &amp; &#039;Tarzan&#039;<br>
Jane &amp; 'Tarzan'
</body>
</html>

La sortie du navigateur du code ci-dessus sera :

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Essayez-le vous-même »

Exemple

Convertir les guillemets doubles en entités HTML :

<?php
$str = 'J\'aime "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Convertit les guillemets doubles et simples
?>

La sortie HTML du code ci-dessus sera (Voir la source) :

<!DOCTYPE html>
<html>
<body>
J'aime &quot;PHP&quot;.
</body>
</html>

La sortie du navigateur du code ci-dessus sera :

J'aime "PHP".
Essayez-le vous-même »

❮ Référence de chaîne PHP