addcslashes

(PHP 4, PHP 5, PHP 7)

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

Beschreibung

addcslashes ( string $str , string $charlist ) : string

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
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
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.

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).

Beispiel #1 addcslashes()-Beispiel

<?php
$escaped 
addcslashes($nicht_escaped"\0..\37!@\177..\377");
?>

Siehe auch