Signatur
Beschreibung
stripslashes() entfernt Backslash-Maskierungen aus einem String. Dabei wird jeder einfache Backslash (\) entfernt, doppelte Backslashes (\\) werden zu einem einfachen Backslash reduziert. Die Funktion ist das Gegenstück zu addslashes().
Historisch wurde stripslashes() hauptsächlich verwendet, um Daten zu bereinigen, die durch die – inzwischen entfernte – Magic Quotes-Funktion von PHP automatisch maskiert worden waren. Seit PHP 5.4.0 existiert Magic Quotes nicht mehr, weshalb der klassische Anwendungsfall entfallen ist.
Heute ist die Funktion noch sinnvoll, wenn man explizit mit addslashes() maskierte Strings wieder in ihren Originalzustand versetzen möchte, beispielsweise beim Lesen von Konfigurationsdateien oder beim Verarbeiten von Formulardaten, die manuell maskiert wurden.
Für die sichere Übergabe von Werten an Datenbanken sollten stattdessen vorbereitete Statements (Prepared Statements) mit PDO oder MySQLi verwendet werden – stripslashes() ist kein geeignetes Werkzeug zur SQL-Injection-Prävention.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $string Pflicht | string | Der Eingabe-String, aus dem Backslash-Maskierungen entfernt werden sollen. |
Rückgabewert
Beispiele
Einfache Maskierungen entfernen
<?php
$masked = "Er sagte: \"Hallo Welt!\"";
echo $masked . PHP_EOL;
$clean = stripslashes($masked);
echo $clean . PHP_EOL;
// Doppelter Backslash wird zu einfachem Backslash
$path = "C:\\\\Windows\\\\System32";
echo stripslashes($path) . PHP_EOL;
Zusammenspiel mit addslashes()
<?php
$original = "O'Brien & \"Partner\"";
$escaped = addslashes($original);
echo "Maskiert: " . $escaped . PHP_EOL;
$restored = stripslashes($escaped);
echo "Wiederhergestellt: " . $restored . PHP_EOL;
echo "Gleich mit Original: " . ($restored === $original ? 'Ja' : 'Nein') . PHP_EOL;
Array-Werte rekursiv bereinigen
<?php
// stripslashes arbeitet nur auf Strings; für Arrays wird array_map benötigt
function stripslashes_deep(array $data): array {
return array_map(function ($value) {
return is_array($value)
? stripslashes_deep($value)
: stripslashes($value);
}, $data);
}
$input = [
'name' => "Max M\\üller",
'quote' => "Er sagte \"Hallo\"",
];
$clean = stripslashes_deep($input);
print_r($clean);
// Wichtig · Fallstricke
Magic Quotes (veraltet): Vor PHP 5.4 wurden Eingabedaten über $_GET, $_POST und $_COOKIE durch die Magic-Quotes-Funktion automatisch mit addslashes() maskiert. stripslashes() wurde häufig eingesetzt, um diese Maskierung rückgängig zu machen. Da Magic Quotes seit PHP 5.4.0 vollständig entfernt wurde, ist dieser Anwendungsfall obsolet.
Kein Sicherheitsmechanismus: stripslashes() darf nicht zur Absicherung von SQL-Abfragen verwendet werden. Verwende stattdessen Prepared Statements mit PDO oder MySQLi, um SQL-Injection zu verhindern.
Nur für Strings: Die Funktion arbeitet ausschließlich auf Strings. Arrays müssen – wie im Beispiel gezeigt – rekursiv mit array_map() verarbeitet werden.