addcslashes
-- Ajoute des slash dans une chaîne,
à la mode du langage C
string addcslashes
( string str, string charlist )
addcslashes() retourne la chaîne
str, après avoir ajouté
des anti-slash devant tous les caractères
qui sont présents dans la liste
charlist. Si charlist contient les
caractères \n, \r etc., ils
seront convertis à la mode
du langage C, alors que les autres
caractères non-alphanumériques
ayant un code ASCII inférieur
à 26, et supérieur à
126 sont remplacés par leur
représentation octale.
Attention à l'utilisation
des caractères tels que 0,
a, b, f, n, r, t et v. Ils seront
convertis en \0, \a, \b, \f, \n, \r,
\t et \v. En PHP, \0 (NULL), \r (retour
chariot), \n (nouvelle ligne) et \t
(tabulation horizontale) sont prédéfinis
comme séquences d'échappement,
tandis qu'en C, ce sont toutes les
séquences cités ci-dessus
qui sont des séquences d'échappement.
charlist peut s'écrire "\0..\37",
ce qui identifie tous les caractères
ASCII dont le code est entre 0 et
37.
Exemple 1. Exemple avec addcslashes()
<?php
$escaped = addcslashes($not_escaped,
"\0..\37!@\177..\377");
?>
Lorsque vous définissez une
séquence de caractères
dans le paramètre charlist,
assurez-vous que vous connaissez bien
tous les caractères qui viennent
entre vos limites d'intervalles.
Exemple 2. Exemple avec addcslashes()
et charlist
<?php
echo addcslashes('foo[ ]', 'A..z');
// affiche : \f\o\o\[ \]
// Toutes les majuscules et minuscules
seront échappées
// ... mais aussi les caractères
[\]^_` et les tabulations
// retours chariots, nouvelles lignes....
?>
De plus, si le premier caractère
d'un intervalle a un code ASCII plus
grand que le second, l'intervalle
ne sera pas créé. Seules
les bornes de l'intervalle et le caractère
point (.) seront échappés.
Utilisez la fonction ord() pour trouver
la valeur ASCII d'un caractère.
Exemple 3. Exemple avec addcslashes()
et charlist (2)
<?php
echo addcslashes("zoo['.']",
'z..A'); // \zoo['\.']
?> |