(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");
?>