Ajoute des slash dans une chaîne, comme en langage C.
string addcslashes
(string str, string charlist)
addcslashes() retourne une chaîne avec des
antislash devant les caractères
qui sont dans la liste charlist. Les caractères
\n, \r etc... sont échappés.
En langage C, les caractères avec un code ASCII inférieur
à 32 ou supérieur à 126 sont convertis en
représentation octale.
Attention si vous décidez d'échapper les caractères
suivants : 0, a, b, f, n, r, t et v. Ils seront convertis en
\0, \a, \b, \f, \n, \r, \t et \.
En PHP, \0 (NULL), \r (retour chariot), \n (nouvelle ligne) et
\t (tabulation) sont des séquences d'échappement
prédéfinies.
Faites bien attention lorsque vous échappez des caractères
alpha-numériques. Vous pouvez spécifier un intervalle dans
charlist comme "\0..\37",
qui échappera les caractères compris dans cet intervalle.
Exemple avec addcslashes()
<?php
$escaped = addcslashes($no_echappe, "\0..\37!&@#92;177..\377");
?>
Lorsque vous définissez une séquence de caractères dans la liste des
arguments, assurez vous de bien connaître tous les caractères qui
sont compris entre les bornes de votre intervalle.
<?php
echo addcslashes('foo[]', 'A..z');
// toutes les lettres majuscules et minuscules seront échappées
// ..mais aussi les crochets, slashs, circonflexes, soulignés, espaces et guillemets obliques!
// [\]^_`
?>
De même, si le premier caractère d'un intervalle a une valeur ASCII inférieure
au second, cet intervalle sera considéré comme nul. Seuls le premier et le dernier
caractères, ainsi que le point seront échappés. Utilisez la fonction
ord() pour connaître la valeur ASCII d'un caractère.
<?php
echo addcslashes("zoo['.']", 'z..A');
/* affiche :
\zoo['\.']
*/
?>
Note :
addcslashes() a été ajouté en PHP 4.0.
Voir aussi
stripcslashes(),
stripslashes(),
htmlspecialchars() et
quotemeta().