Signatur
Beschreibung
stripcslashes() ist die Umkehrfunktion zu addcslashes(). Sie interpretiert C-Stil-Escape-Sequenzen wie \n, \t, \r, \\, \', \" sowie oktale (\NNN) und hexadezimale (\xNN) Zeichen-Escape-Sequenzen und ersetzt sie durch die entsprechenden Zeichen.
Die Funktion wird typischerweise eingesetzt, wenn Daten zuvor mit addcslashes() maskiert gespeichert oder übertragen wurden und vor der weiteren Verarbeitung wieder in ihre ursprüngliche Form gebracht werden müssen.
Wichtig: stripcslashes() ist nicht das Gegenstück zu addslashes(). Für addslashes()-maskierte Strings muss stattdessen stripslashes() verwendet werden. Die beiden Funktionen unterscheiden sich im Umfang der erkannten Escape-Sequenzen deutlich.
Erkannte Escape-Sequenzen umfassen unter anderem: \\ (Backslash), \a (Bell), \b (Backspace), \f (Form Feed), \n (Zeilenumbruch), \r (Wagenrücklauf), \t (Tabulator), \v (Vertikaler Tabulator), oktal-codierte Zeichen (\NNN) und hexadezimal-codierte Zeichen (\xNN).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $string Pflicht | string | Der Eingabe-String, der C-Stil-Escape-Sequenzen enthält und demaskiert werden soll. |
Rückgabewert
Beispiele
Einfache Demaskierung von C-Stil-Escape-Sequenzen
<?php
$masked = addcslashes("Hallo\nWelt!\tTabulator", "\n\t");
echo $masked . PHP_EOL;
// Ausgabe: Hallo\nWelt!\tTabulator
$unmasked = stripcslashes($masked);
echo $unmasked;
// Ausgabe: Hallo
// Welt! Tabulator
Demaskierung hexadezimaler und oktaler Escape-Sequenzen
<?php
// Hexadezimal \x41 = 'A', \x42 = 'B'
$hexEncoded = '\x41\x42\x43';
echo stripcslashes($hexEncoded) . PHP_EOL;
// Ausgabe: ABC
// Oktal \101 = 'A', \102 = 'B', \103 = 'C'
$octEncoded = '\101\102\103';
echo stripcslashes($octEncoded) . PHP_EOL;
// Ausgabe: ABC
Daten aus Datenbank oder Konfigurationsdatei wiederherstellen
<?php
// Simulierter gespeicherter Wert (z. B. aus einer Konfigurationsdatei)
$storedValue = 'Pfad: C:\\Users\\Max\\Dokumente';
echo 'Gespeichert: ' . $storedValue . PHP_EOL;
$restoredValue = stripcslashes($storedValue);
echo 'Wiederhergestellt: ' . $restoredValue . PHP_EOL;
// Wichtig · Fallstricke
Verwechslungsgefahr: stripcslashes() ist nicht das Gegenstück zu addslashes(). Für mit addslashes() maskierte Strings muss stripslashes() verwendet werden. Das Verwechseln der Funktionen kann zu fehlerhafter Verarbeitung und im schlimmsten Fall zu Sicherheitslücken führen.
Magic Quotes (veraltet): In älteren PHP-Versionen (vor PHP 5.4) gab es die Einstellung magic_quotes_gpc, die eingehende Daten automatisch mit addslashes() maskierte. Das Gegenstück war stripslashes(), nicht stripcslashes(). Magic Quotes wurden in PHP 5.4 entfernt.
Unbekannte Escape-Sequenzen: Enthält der String unbekannte Escape-Sequenzen (z. B. \q), wird nur der Backslash entfernt und das folgende Zeichen bleibt erhalten (Ergebnis: q). Dies kann unerwünschte Nebenwirkungen haben.