addcslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

addcslashesStellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)

Beschreibung

addcslashes(string$string, string$characters): string

Gibt eine Zeichenkette zurück, in der allen Zeichen, die in characters aufgeführt sind, ein "\" vorangestellt ist.

Parameter-Liste

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 [\]^_`
?>
Es ist außerdem zu beachten, dass keine Sequenz erstellt wird, wenn das erste Zeichen einer Sequenz einen höheren ASCII-Wert hat, als das zweite. In diesem Fall werden nur das erste und das letzte Zeichen sowie Punkte maskiert. Um den ASCII-Wert eines Zeichens zu ermitteln, kann die Funktion ord() verwendet werden.
<?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.

Rückgabewerte

Gibt die maskierte Zeichenkette zurück.

Beispiele

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

Siehe auch

To Top