Derniers tutoriels de développement web
 

PHP htmlspecialchars() Function

<PHP chaîne de référence

Exemple

Convertir les caractères prédéfinis "<" (less than) et ">" (greater than) à des entités HTML:

<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>

La sortie HTML du code ci - dessus sera (View Source) la (View Source) :

<!DOCTYPE html>
<html>
<body>
This is some &lt;b&gt;bold&lt;/b&gt; text.
</body>
</html>

La sortie du navigateur du code ci-dessus sera:

This is some <b>bold</b> text.
»Exécuter exemple

Définition et utilisation

Le htmlspecialchars() convertit certains caractères prédéfinis pour les entités HTML.

Les caractères prédéfinis sont les suivants:

  • & (ampersand) devient & amp;
  • " (double quote) devient & quot;
  • ' (single quote) devient & # 039;
  • < (less than) devient & lt;
  • > (greater than) devient & gt;

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


Syntaxe

htmlspecialchars( string,flags,character-set,double_encode )

Paramètre La description
string Champs obligatoires. Indique la chaîne à convertir
flags Optionnel. Indique comment gérer les citations, invalides codage et le type de document utilisé.

Les styles de citation disponibles sont:

  • ENT_COMPAT - Par défaut. Encode uniquement des guillemets doubles
  • ENT_QUOTES - Encode guillemets doubles et simples
  • ENT_NOQUOTES - ne code pas pour des citations

Invalid encodage:

  • ENT_IGNORE - Ignore invalide encodage au lieu d'avoir la fonction retourne une chaîne vide. Devrait être évitée, car elle peut avoir des répercussions sur la sécurité.
  • ENT_SUBSTITUTE - Remplace invalide codant 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 points de code qui ne sont pas valides dans le DOCTYPE indiquée par un caractère de remplacement Unicode U + FFFD (UTF-8) ou & # FFFD;

drapeaux supplémentaires pour spécifier le type de document utilisé:

  • ENT_HTML401 - Par défaut. Poignée code HTML 4.01
  • ENT_HTML5 - Code Handle HTML 5
  • ENT_XML1 - Code Handle XML 1
  • ENT_XHTML - Code poignée XHTML
character-set Optionnel. Une chaîne qui spécifie le jeu de caractères à utiliser.

Les valeurs autorisées sont:

  • UTF-8 - Par défaut. ASCII compatible multi-octets de 8 bits Unicode
  • ISO-8859-1 - Europe occidentale
  • ISO-8859-15 - Europe occidentale (ajoute le signe Euro + lettres français et finlandais, qui manquent dans la norme ISO-8859-1)
  • CP866 - charset cyrillique spécifique DOS
  • 1251 - charset cyrillique spécifiques à Windows
  • CP1252 - charset Windows spécifique pour l'Europe occidentale
  • KOI8-R - russe
  • GRAND5 - chinois traditionnel, utilisé principalement à Taiwan
  • GB2312 - Chinois simplifié, Norme nationale
  • GRAND5-HKSCS - Big5 avec les extensions Hong Kong
  • Shift_JIS - Japonais
  • EUC-JP - Japonais
  • MacRoman - character-set qui a été utilisé par Mac OS

Note: jeux de caractères non reconnus seront ignorés et remplacés par ISO-8859-1 dans les versions antérieures à PHP 5.4. PHP 5.4, il sera ignoré une remplacé par UTF-8.

double_encode Optionnel. Une valeur booléenne qui spécifie si pour coder des entités html existantes ou non.
  • TRUE - Par défaut. Convertira tout
  • FAUX - N'encoder des entités html existantes

Détails techniques

Valeur de retour: Renvoie la chaîne convertie

Si la chaîne contient invalide l' encodage, il retournera une chaîne vide, à moins que ce soit le ENT_IGNORE ou drapeaux ENT_SUBSTITUTE sont fixés
PHP Version: 4+
changelog: La valeur par défaut pour le paramètre jeu de caractères a été changé en UTF-8 en PHP 5

ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 et ENT_XHTML ont été ajoutés en PHP 5.4

ENT_IGNORE a été ajouté en PHP 5.3

Le paramètre double_encode a été ajouté en PHP 5.2.3

Le paramètre character-set a été ajouté en PHP 4.1

autres exemples

Exemple 1

Convertir des caractères prédéfinis à des entités HTML:

<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>

La sortie HTML du code ci - dessus sera (View Source) la (View 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'
»Exécuter exemple

exemple 2

Convertir des guillemets doubles aux entités HTML:

<?php
$str = 'I love "PHP" .';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>

La sortie HTML du code ci - dessus sera (View Source) la (View Source) :

<!DOCTYPE html>
<html>
<body>
I love &quot;PHP&quot;.
</body>
</html>

La sortie du navigateur du code ci-dessus sera:

I love "PHP" .
»Exécuter exemple

<PHP chaîne de référence