OUJOOD.COM
PHP références des fonctions PHP
(PHP 4, PHP 5, PHP 7, PHP 8)
stripslashes() — Supprime les antislashs d'une chaîne de caractères
La fonction stripslashes()
Définition et utilisation
La fonction stripslashes() enlève les barres obliques inverses (\) supplémentaires ajoutées par la fonction addslashes(). Elle est essentielle pour nettoyer les données qui ont été échappées, restaurant ainsi leur format original. Cette fonction est particulièrement utile lors de la récupération de données depuis une base de données ou lors du traitement de formulaires HTML où les caractères spéciaux comme les guillemets simples ('), doubles (") ou les antislashs (\) ont été précédemment échappés pour éviter des problèmes de sécurité ou de syntaxe. La fonction traite spécifiquement les séquences d'échappement suivantes : \', \", \\ et \0 (caractère null). Elle convertit ces séquences en leurs caractères originaux respectifs.
Syntaxestripslashes(string $chaine): string
| Paramètre | Description |
|---|---|
|
chaine |
Requis. Spécifie la chaîne à vérifier. Doit être une chaîne de caractères contenant potentiellement des antislashs d'échappement. Si un tableau est passé, une erreur de type E_WARNING sera émise et la fonction retournera NULL. Pour traiter des tableaux, utilisez plutôt array_map() avec stripslashes(). La fonction accepte uniquement des chaînes de caractères et retourne toujours une chaîne de caractères. |
Notes importantes :
Cette fonction peut être employée pour nettoyer des données recherchées dans une base de données ou les données récupérées d'un formulaire HTML. Historiquement, elle était souvent utilisée pour contrer les effets de la directive magic_quotes_gpc (obsolète depuis PHP 5.3.0 et supprimée en PHP 7.0) qui ajoutait automatiquement des antislashs aux données GET, POST et COOKIE. Attention : n'utilisez pas cette fonction sur des données qui n'ont pas été échappées au préalable, car cela pourrait altérer inutilement votre contenu. Pour traiter des tableaux multidimensionnels, créez une fonction récursive appliquant stripslashes() à chaque élément. Important : cette fonction ne doit pas être confondue avec une fonction de sécurisation contre les injections SQL - utilisez plutôt des requêtes préparées pour sécuriser vos requêtes de base de données.
Exemples d'utilisation
Exemple : 📋 Copier le code
<?php
// Exemple 1 : Traitement d'une chaîne simple
$chaine = "Avez-vous l\'oreille dure?";
echo stripslashes($chaine); // Affiche : Avez-vous l'oreille dure?
// Exemple 2 : Traitement de guillemets doubles
$texte = "Il a dit : \"Bonjour tout le monde\"";
echo stripslashes($texte); // Affiche : Il a dit : "Bonjour tout le monde"
// Exemple 3 : Traitement d'antislashs multiples
$chemin = "C:\\\\dossier\\\\fichier.txt";
echo stripslashes($chemin); // Affiche : C:\dossier\fichier.txt
// Exemple 4 : Traitement d'un tableau simple
$tableau = ["C\'est l\'été", "Les \"guillemets\" sont échappés", "Un\\\\chemin"];
$tableau_nettoye = array_map('stripslashes', $tableau);
print_r($tableau_nettoye);
/*
Affiche :
Array
(
[0] => C'est l'été
[1] => Les "guillemets" sont échappés
[2] => Un\chemin
)
*/
// Exemple 5 : Fonction récursive pour tableaux multidimensionnels
function stripslashes_deep($valeur) {
return is_array($valeur) ?
array_map('stripslashes_deep', $valeur) :
stripslashes($valeur);
}
$donnees_complexes = [
'nom' => 'O\'Connor',
'message' => 'Il a dit \"Hello\"',
'details' => [
'ville' => 'L\'Haÿ-les-Roses',
'commentaire' => 'C\'est \"parfait\"'
]
];
$donnees_nettoyees = stripslashes_deep($donnees_complexes);
print_r($donnees_nettoyees);
/*
Affiche :
Array
(
[nom] => O'Connor
[message] => Il a dit "Hello"
[details] => Array
(
[ville] => L'Haÿ-les-Roses
[commentaire] => C'est "parfait"
)
)
*/
?>
Valeur de retour :
Retourne une chaîne de caractères avec les antislashs supprimés. Si le paramètre n'est pas une chaîne, la fonction émet une erreur E_WARNING et retourne NULL.
Fonctions associées :
- addslashes() : Ajoute des antislashs devant les caractères spéciaux
- addcslashes() : Ajoute des antislashs devant les caractères spécifiés
- stripCslashes() : Supprime les antislashs ajoutés par addcslashes()
- htmlspecialchars() : Convertit les caractères spéciaux en entités HTML
- mysqli_real_escape_string() : Échapppe les caractères pour MySQL (recommandé pour les bases de données)
Fonction précédente: |
Fonction suivante: |