addcslashes
(PHP 4, PHP 5, PHP 7, PHP 8)
addcslashes — Ajoute des slash dans une chaîne, à la mode du langage C
Liste de paramètres
string
-
La chaîne à échapper.
characters
-
Une liste de caractères à échapper. Si
characters 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
à 32, et supérieur à 126 sont remplacés par leur représentation
octale.
Lorsque l'on définit une séquence de caractères
dans le paramètre characters, il faut s'assurer
que l'on connaît bien tous les caractères qui viennent entre
les limites d'intervalles.
Exemple #1 addcslashes() avec des plages
<?php
echo addcslashes('foo[ ]', 'A..z');
// Affiche : \f\o\o\[ \]
// Toutes les majuscules et minuscules seront échappées
// ... mais aussi les caractères [\]^_`
?>
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. Utiliser la fonction ord() pour
trouver la valeur ASCII d'un caractère.
Exemple #2 addcslashes() avec des caractères dans le mauvais ordre
<?php
echo addcslashes("zoo['.']", 'z..A');
// Affiche : \zoo['\.']
?>
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,
tous étant des séquences d'échappement en C. La plupart de ces séquences
sont aussi définies dans d'autres langages dérivés du C, incluant PHP,
ce qui signifie que l'on n'obtiendra pas le résultat attendu si l'on
utilise la sortie de la fonction addcslashes()
pour générer du code pour ces langages avec les caractères définis
dans le paramètre characters.
Valeurs de retour
Retourne la chaîne, échappée.
Exemples
characters peut s'écrire "\0..\37", ce qui
identifie tous les caractères ASCII dont le code est entre
0 et 37.
Exemple #3 Exemple avec addcslashes()
<?php
$not_escaped = "PHP isThirty\nYears Old!\tYay to the Elephant!\n";
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
echo $escaped;
?>