Start · Sprachen · PHP · Referenz · get_magic_quotes_runtime

get_magic_quotes_runtime

Funktion

Liefert den aktuellen Aktivierungsstatus der PHP-Einstellung <code>magic_quotes_runtime</code> (0 oder 1).

seit PHP 4.0.0 Kategorie: misc

Signatur

get_magic_quotes_runtime(): int

Beschreibung

get_magic_quotes_runtime() gibt zurück, ob die PHP-Konfigurationsoption magic_quotes_runtime aktiviert ist. Ist sie aktiv (1), werden bei Daten, die aus externen Quellen wie Datenbanken oder Dateien gelesen werden, automatisch Backslashes vor bestimmten Sonderzeichen (', ", \) eingefügt.

Diese Funktion war in älteren PHP-Versionen (PHP 4 und PHP 5) relevant, um das Verhalten von Magic Quotes zu prüfen und entsprechend darauf zu reagieren – zum Beispiel um doppeltes Escapen zu vermeiden oder um Daten korrekt zu säubern.

Wichtig: Die gesamte Magic-Quotes-Funktionalität wurde in PHP 5.4 entfernt. get_magic_quotes_runtime() gibt ab PHP 5.4 stets 0 zurück und wurde in PHP 7.4 als deprecated markiert und in PHP 8.0 vollständig entfernt. Moderner PHP-Code sollte diese Funktion weder verwenden noch benötigen.

Für Legacy-Code, der noch auf PHP 5.3 oder älter ausgerichtet ist, konnte man mit dieser Funktion prüfen, ob manuelles Strippen der Backslashes (stripslashes()) erforderlich ist, um ungewollte Escapes aus Datenbankresultaten oder Dateiinhalten zu entfernen.

Rückgabewert

Typ
int
Beschreibung
Gibt 1 zurück, wenn magic_quotes_runtime aktiviert ist, andernfalls 0. Ab PHP 5.4 wird stets 0 zurückgegeben, da Magic Quotes nicht mehr unterstützt werden.

Beispiele

Prüfen ob magic_quotes_runtime aktiv ist (PHP 5.3 und älter)

<?php
// Nur in PHP 5.3 und älter sinnvoll
if (get_magic_quotes_runtime()) {
    // Backslashes aus Datenbankresultaten entfernen
    $data = stripslashes($data_from_db);
} else {
    $data = $data_from_db;
}
echo $data;

Rückgabewert in PHP 5.4+ ist immer 0

<?php
// Ab PHP 5.4 ist Magic Quotes deaktiviert und nicht mehr konfigurierbar
$status = get_magic_quotes_runtime();
echo $status; // Gibt immer 0 aus

// Wichtig · Fallstricke

Deprecated seit PHP 7.4, entfernt in PHP 8.0: Die Funktion get_magic_quotes_runtime() ist in PHP 8.0 nicht mehr vorhanden. Jeder Aufruf in PHP 8+ führt zu einem Fatal Error. Moderner Code sollte diese Funktion nicht verwenden.

Magic Quotes galten bereits lange vor ihrer Entfernung als schlechte Praxis, da sie ein falsches Sicherheitsgefühl vermittelten und zu doppelt-escapen oder unerwünschten Datenmanipulationen führen konnten. Die korrekte Alternative ist konsequentes, kontextgerechtes Escapen (z. B. mit PDO Prepared Statements für Datenbankabfragen oder htmlspecialchars() für HTML-Ausgaben).