(PHP 4, PHP 5, PHP 7)
addcslashes — Stellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)
$str
, string $charlist
) : string
Gibt eine Zeichenkette zurück, in der allen Zeichen, die in
charlist
aufgeführt sind, ein "\" vorangestellt ist.
str
Die zu escapende Zeichenkette.
charlist
Eine Liste der zu escapenden Zeichen. Wenn charlist
Zeichen wie \n
, \r
etc. enthält,
werden diese im C-Stil konvertiert, während andere nicht-alphanumerische
Zeichen mit einem ASCII-Wert kleiner als 32 oder höher als 126 in ihre
oktale Repräsentation umgewandelt werden.
Wenn Sie eine Zeichensequenz im charlist-Parameter notieren, informieren Sie sich darüber, welche Zeichen sich zwischen dem ersten und dem letzten Zeichen befinden!
<?php
echo addcslashes('foo[ ]', 'A..z');
// Ausgabe: \f\o\o\[ \]
// Alle groß- und kleingeschriebenen Buchstaben werden maskiert
// ... aber ebenfalls die Zeichen [\]^_`
?>
<?php
echo addcslashes("zoo['.']", 'z..A');
// Ausgabe: \zoo['\.']
?>
Seien Sie besonders vorsichtig, wenn Sie Zeichen wie 0, a, b, f, n, r,
t oder v escapen möchten. Sie werden zu \0, \a, \b, \f, \n, \r, \t
oder \v gewandelt, die in C sämtlich vordefinierte Escape-Sequenzen sind.
Viele dieser Sequenzen sind ebenfalls in anderen von C abgeleiteten
Sprachen, einschließlich PHP, vordefiniert, was bedeutet, dass Sie u.U.
nicht das gewünschte Ergebnis erhalten, wenn Sie die Rückgabe von
addslashes() verwenden, um Code in diesen Sprachen zu
erzeugen, wenn diese Zeichen in charlist
definiert
sind.
Gibt die maskierte Zeichenkette zurück.
charlist
-Angaben wie "\0..\37" (oktal) bewirken
ein Escapen aller Zeichen mit einem ASCII-Code zwischen 0 und 31 (dezimal).
Beispiel #1 addcslashes()-Beispiel
<?php
$escaped = addcslashes($nicht_escaped, "\0..\37!@\177..\377");
?>