addcslashes

(PHP 4 , PHP 5)

addcslashes -- Ajoute des slash dans une chaîne, à la mode du langage C

Description

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. Cette fonction échappe aussi les caractères \n, \r etc. à la mode du langage C. Tous les caractères 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ées. 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['\.']
?>

Voir aussi stripcslashes(), stripslashes(), htmlspecialchars() et quotemeta().