Dans PHP, la fonction addcslashes () est une fonction de chaîne utilisée pour échapper aux caractères spécifiques dans une chaîne. Son objectif principal est d'empêcher que certains personnages ne soient mal interprétés en code ou de gérer des scénarios de chaîne sensibles tels que les bases de données et les chemins de fichier. La syntaxe de base d'une fonction est la suivante:
string addcslashes(string $str, string $charlist)
Où $ STR représente la chaîne d'origine à traiter, et $ charlist est utilisé pour spécifier le jeu de caractères qui doit être échappé.
Le barre arrière ( \ ) a des significations spéciales en PHP et est souvent utilisée comme caractères d'évasion. Lorsque nous voulons que certains caractères ne soient pas mal compris par l'interprète, nous pouvons utiliser la fonction addcslashes () pour ajouter automatiquement des barreaux pour assurer la sécurité de l'opération du programme.
$str = "It's a beautiful day!";
echo addcslashes($str, "'");
Le résultat de la sortie est:
C'est une belle journée!
Lorsque vous traitez avec des données JSON, des expressions régulières ou des intégres de script, plusieurs caractères peuvent devoir être échappés simultanément. À l'heure actuelle, vous pouvez également utiliser AddCSlashes () pour implémenter le traitement par lots.
$str = '{ "name": "John", "age": "30", "city": "New York" }';
echo addcslashes($str, "\"\\/");
Le résultat de sortie est le suivant:
{\ "name \": \ "John \", \ "Age \": \ "30 \", \ "City \": \ "New York \"}
Étant donné que l'arrière-plan lui-même est un personnage d'évasion, soyez particulièrement prudent lorsque vous traitez des cordes avec des citations uniques ou elles-mêmes avec des personnages d'évasion.
$str = "It's a beautiful day!";
echo addcslashes($str, "'\\");
Résultat de sortie:
C'est \\ 'sa belle journée!
Cette fonction ne traite que les caractères ASCII et ne peut pas être traitée directement pour les caractères Unicode multi-octets. S'il y a une exigence de codage Unicode, il est recommandé de combiner la fonction MB_CONVERT_ENCODING () pour traiter la conversion de codage, puis échapper:
$str = "Bonjour,monde!";
$str = mb_convert_encoding($str, 'UTF-32', 'UTF-8');
echo addcslashes($str, '\\x');
La sortie peut être:
\\ x4f60 \\ x597d \\ xff0c \\ x4e16 \\ x754c \\ xff01
Lors de l'insertion de l'entrée de l'utilisateur dans des instructions SQL, l'utilisation d'AddCslashes () peut efficacement éviter les interruptions de syntaxe ou l'injection SQL causées par des caractères spéciaux.
$username = "admin";
$password = "1234'5678";
$sql = "SELECT * FROM users WHERE username = '" . addcslashes($username, "'\\") . "' AND password = '" . addcslashes($password, "'\\") . "'";
echo $sql;
Sortir:
Sélectionnez * dans les utilisateurs où username = 'admin' et mot de passe = '1234 \\' 5678 '
Lors du traitement des chemins de fichier, certains caractères peuvent interférer avec la reconnaissance des fonctions de fichier. À l'heure actuelle, vous pouvez également utiliser AddCSlashes () pour Path Security Escape.
$filename = "C:/Users/Administrator/Desktop/foo.txt";
$file_content = file_get_contents(addcslashes($filename, "'\\"));
echo $file_content;
Cela peut éviter les problèmes causés par des barres à barres sur le chemin.
AddCslashes () est une fonction de traitement de chaîne très pratique en PHP, adapté à une variété de scénarios qui nécessitent une échappatoire à la caractères, tels que les opérations de base de données, le traitement du chemin de fichier et la conversion du format de données. La maîtrise de son utilisation contribuera à améliorer la sécurité et la robustesse des projets PHP. Pendant l'utilisation, vous devez accorder une attention particulière aux jeux de caractères, à échapper à la priorité et à d'autres problèmes pour éviter les erreurs logiques.