Aller au contenu

htmlspecialchars()

La fonction htmlspecialchars() est utilisée pour convertir les caractères spéciaux en leurs entités HTML correspondantes. La syntaxe de la fonction htmlspecialchars() est la suivante :

Syntaxe PHP

php
string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

La fonction prend un paramètre obligatoire, $string, qui est la chaîne contenant les caractères spéciaux à convertir. La fonction possède également trois paramètres optionnels : $flags, $encoding et $double_encode.

Voici un exemple d'utilisation de la fonction htmlspecialchars() :

Exemple de base

php
<?php
$string = "Hello <strong>World</strong>!";
$encoded_string = htmlspecialchars($string);
echo $encoded_string;
?>

Dans cet exemple, nous avons une variable chaîne $string contenant du texte avec des caractères spéciaux. Nous utilisons la fonction htmlspecialchars() pour convertir les caractères spéciaux en leurs entités HTML correspondantes.

Comme vous pouvez le voir, les balises <strong> ont été converties en &lt;strong&gt; et &lt;&#8203;/strong&gt;.

La fonction htmlspecialchars() peut également prendre un deuxième paramètre, $flags, qui spécifie comment gérer les guillemets et quel ensemble d'entités utiliser. La valeur par défaut pour $flags est ENT_COMPAT | ENT_HTML401, qui convertit les guillemets doubles en &quot; mais laisse les guillemets simples inchangés. Pour convertir à la fois les guillemets simples et doubles, utilisez le drapeau ENT_QUOTES.

Voici un exemple d'utilisation de la fonction htmlspecialchars() avec le drapeau ENT_QUOTES :

Utilisation du drapeau ENT_QUOTES

php
<?php
$string = "I'm a paragraph";
$encoded_string = htmlspecialchars($string, ENT_QUOTES);
echo $encoded_string;
?>

Dans cet exemple, nous avons une variable chaîne $string contenant du texte avec une apostrophe. Nous utilisons la fonction htmlspecialchars() avec le drapeau ENT_QUOTES pour convertir les caractères spéciaux en leurs entités HTML correspondantes, et pour gérer l'apostrophe.

Comme vous pouvez le voir, l'apostrophe a été convertie en &#039;.

La fonction htmlspecialchars() peut également prendre un troisième paramètre, $encoding, qui spécifie l'encodage de caractères de la chaîne de sortie. La valeur par défaut pour $encoding est la valeur de l'option de configuration default_charset.

Voici un exemple d'utilisation de la fonction htmlspecialchars() avec un encodage spécifique :

Spécification de l'encodage

php
<?php
$string = "Hello World!";
$encoded_string = htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, "UTF-8");
echo $encoded_string;
?>

Dans cet exemple, nous avons une variable chaîne $string contenant du texte. Nous utilisons la fonction htmlspecialchars() avec l'encodage UTF-8 pour convertir les caractères spéciaux en leurs entités HTML correspondantes.

Comme vous pouvez le voir, la sortie reflète correctement l'encodage UTF-8 spécifié.

La fonction htmlspecialchars() peut également prendre un quatrième paramètre, $double_encode, qui spécifie s'il faut encoder les entités existantes ou non. La valeur par défaut pour $double_encode est true, ce qui signifie que les entités existantes seront encodées.

Voici un exemple d'utilisation de la fonction htmlspecialchars() avec $double_encode défini sur false :

Désactivation de l'encodage double

php
<?php
$string = "Hello &lt;strong&gt;World&lt;/strong&gt;!";
$encoded_string = htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, "UTF-8", false);
echo $encoded_string;
?>

Dans cet exemple, nous avons une variable chaîne $string contenant du texte avec des entités HTML. Nous utilisons la fonction htmlspecialchars() avec $double_encode défini sur false pour convertir les caractères spéciaux en leurs entités HTML correspondantes, sans encoder les entités existantes.

Comme vous pouvez le voir, les entités &lt; et &gt; existantes restent inchangées car $double_encode est défini sur false.

La fonction htmlspecialchars() est un outil utile pour travailler avec des données HTML, telles que des données provenant d'un formulaire HTML ou d'un fichier HTML. Elle peut vous aider à convertir les caractères spéciaux en leurs entités HTML correspondantes, rendant votre code plus polyvalent et flexible. En maîtrisant cette fonction, vous pouvez devenir un développeur PHP plus compétent.

Nous espérons que cet article vous a aidé à comprendre la fonction htmlspecialchars() en PHP.

Pratique

Quelle est la tâche principale de la fonction htmlspecialchars() en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.