PHP Portal » PHP Handbuch » addcslashes

Werbung

addcslashes


(PHP 4, PHP 5)

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

Beschreibung

string addcslashes ( string $str , string $charlist )

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

Parameter-Liste

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 Code
1
2
3
4
echo addcslashes('foo[ ]', 'A..z'); // Ausgabe: \f\o\o\[ \] // Alle groß- und kleingeschriebenen Buchstaben werden maskiert // ... aber ebenfalls die Zeichen [\]^_`

Beachten Sie zudem, dass sofern das erste Zeichen einer Sequenz einen höheren ASCII-Wert hat als das zweite, keine Sequenz erstellt wird. Nur das erste und das letzte Zeichen sowie Punkte werden dann escaped. Verwenden Sie die Funktion ord(), um den ASCII-Wert eines Zeichens zu ermitteln.

PHP Code
1
2
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. In PHP sind \0 (NULL), \r (Wagenrücklauf), \n (Neue Zeile), \f (Seitenvorschub), \v (vertikaler Tabulator) und \t (Tabulator) vordefinierte Escape-Sequenzen, während in C alle der genannten Zeichen vordefinierte Escape-Sequenzen sind.

Rückgabewerte

Gibt die maskierte Zeichenkette zurück.

Changelog

Version Beschreibung
5.2.5 Die Escape-Sequenzen \v and \f wurden hinzugefügt.

Beispiele

charlist -Angaben wie "\0..\37" (oktal) bewirken ein Escapen aller Zeichen mit einem ASCII-Code zwischen 0 und 31 (dezimal).

PHP Code
1
$escaped = addcslashes($nicht_escaped, "\0..\37!@\177..\377");

Siehe auch