Position actuelle: Accueil> Derniers articles> Introduction à la fonction PHP - htmlSpecialChars (): échapper aux caractères spéciaux dans les chaînes

Introduction à la fonction PHP - htmlSpecialChars (): échapper aux caractères spéciaux dans les chaînes

M66 2025-06-05

Explication détaillée de la fonction et de l'utilisation de la fonction htmlSpecialChars () dans PHP

Pendant le processus de développement Web, le contenu entré par les utilisateurs est souvent directement utilisé pour l'affichage des pages ou l'interaction de données. Afin d'éviter les problèmes de sécurité tels que l'injection de script malveillante, les développeurs doivent strictement traiter ces données d'entrée. HTMLSpecialCars () est une fonction importante en PHP pour échapper aux caractères spéciaux dans les chaînes, ce qui peut effectivement empêcher les risques de sécurité tels que les XS (attaque de script de site transversal).

Structure de syntaxe de fonction

 
string htmlspecialchars(
    string $string,
    int $flags = ENT_COMPAT | ENT_HTML401,
    string $encoding = "UTF-8",
    bool $double_encode = true
)
  • $ String : requis, chaîne pour s'échapper.
  • $ Flags : Facultatif, définit comment gérer les devis, la valeur par défaut est ent_compat | Ent_html401 .
  • $ Encodage : facultatif, spécifiez le codage des caractères et utilisez UTF-8 par défaut.
  • $ double_encode : Facultatif, définissant l'opportunité de permettre le codage d'entités codées à réencoder. La valeur par défaut est vraie.

Type de personnage d'échappement

Cette fonction échappe aux caractères spéciaux suivants en tant qu'entités HTML:

  • & Convertir à &
  • " Convertir en "
  • « Convertir en » (dans certaines configurations)
  • < Converti à <
  • > Convertir en >

Grâce à ces évasions, les scripts malveillants peuvent être effectivement empêchés d'être exécutés dans le navigateur.

Exemple d'utilisation

Exemple 1: Évasion de personnage spécial de base

 
$input = '<script>alert("Hello!");</script>';
$output = htmlspecialchars($input);
echo $output;
// Sortir:<script>alert("Hello!");</script>

Dans cet exemple, les balises HTML sont échappées en toute sécurité et le navigateur les exécute en texte brut au lieu de scripts.

Exemple 2: Gestion des citations simples et doubles

 
$input = 'I\'m "John"';
$output = htmlspecialchars($input, ENT_QUOTES);
echo $output;
// Sortir:I'm "John"

Après avoir défini le paramètre ENT_QUOTES , les devis simples et doubles seront échappés, adaptés à des scénarios tels que la sortie d'attribut.

Exemple 3: Spécifiez le codage des caractères

 
$input = 'Caractères chinois';
$output = htmlspecialchars($input, ENT_QUOTES, 'GBK');
echo $output;
// Sortir:Caractères chinois

Si le codage de caractères spécifié est cohérent avec le codage réel des données d'entrée, les caractères multi-octets tels que le chinois ne seront pas échappés à tort.

Exemple 4: Double Escape est interdit

 
$input = 'special & character';
$output = htmlspecialchars($input, ENT_QUOTES, 'UTF-8', false);
echo $output;
// Sortir:special & character

La définition de $ double_encode sur FALSE peut empêcher les entités échappées d'être codées à nouveau et garder le contenu de sortie lisible.

Résumer

htmlSpecialChars () est une fonction importante fournie par PHP pour assurer la sortie sûre de la saisie de l'utilisateur sur la page. En définissant raisonnablement les paramètres, différentes exigences d'encodage et d'échappement peuvent être répondues de manière flexible, améliorant efficacement la sécurité de l'application. Dans des scénarios tels que le traitement de la forme de formulaire et la sortie de contenu dynamique, les développeurs sont recommandés pour donner la priorité à l'utilisation de cette fonction pour éviter les attaques XSS potentielles.