(PHP 4, PHP 5, PHP 7, PHP 8)
addcslashes — Stellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)
Gibt eine Zeichenkette zurück, in der allen Zeichen, die in characters
aufgeführt sind, ein "\" vorangestellt ist.
string
Die zu maskierende Zeichenkette.
characters
Eine Liste der zu maskierenden Zeichen. Wenn characters
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 größer als 126 in ihre oktale Repräsentation umgewandelt werden.
Wenn im Parameter characters
eine Folge von Zeichen definiert wird, sollte bekannt sein, welche Zeichen zwischen den Zeichen liegen, die als Anfang und Ende des Bereichs festgelegt wurden.
<?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['\.']
?>
Besondere Vorsicht ist geboten, wenn die Zeichen 0, a, b, f, n, r, t und v maskiert werden sollen. Sie werden zu \0, \a, \b, \f, \n, \r, \t oder \v umgewandelt, die in C sämtlich vordefinierte Escape-Sequenzen sind. Viele dieser Sequenzen sind auch in anderen von C abgeleiteten Sprachen, einschließlich PHP, vordefiniert. Das bedeutet, dass möglicherweise nicht das gewünschte Ergebnis erreicht wird, wenn die Rückgabe von addcslashes() verwendet wird, um mit diesen in characters
definierten Zeichen Code in diesen Sprachen zu erzeugen.
Gibt die maskierte Zeichenkette zurück.
characters
-Angaben wie "\0..\37" (oktal) bewirken ein Maskieren aller Zeichen mit einem ASCII-Code zwischen 0 und 31 (dezimal).
Beispiel #1 addcslashes()-Beispiel
<?php
$maskiert = addcslashes($nicht_maskiert, "\0..\37!@\177..\377");
?>