2010-02-07 5 views
51

Ich bekomme diese Nachricht, wenn ich versuche, ein PHP-Skript auszuführen, das ich verwenden muss, aber nicht geschrieben habe.Wie kann ich die veraltete set_magic_quotes_runtime in PHP ersetzen?

Deprecated: Function set_magic_quotes_runtime() is deprecated in /opt/lampp/htdocs/webEchange/SiteWeb_V5/inc/fpdf.php on line 1810 

Hier ist die Linie 1810:

set_magic_quotes_runtime(0); 

Wenn dies eine veraltete Funktion, was kann ich es mit ersetzen?

Vielen Dank!

Antwort

6

Da Magic Quotes jetzt standardmäßig deaktiviert ist (und zum Entfernen vorgesehen ist), können Sie den Funktionsaufruf einfach aus Ihrem Code entfernen.

+2

sehen, warum dies nicht gut sein kann Idee (http://stackoverflow.com/questions/2217955/how-can-i-replace-the-deprecated-set-magic-quotes-runtime-in-php/2218021#2218021) – philfreo

3

Sie müssen es durch nichts ersetzen. Die Einstellung magic_quotes_runtime ist removed in PHP6, daher ist der Funktionsaufruf nicht erforderlich. Wenn Sie, um die Rückwärtskompatibilität wollen kann es klug sein, es in einem einzuwickeln if-Anweisung überprüft phpversion mit version_compare

+1

Und um dies mit Code zu untermauern: 'if (version_compare (PHP_VERSION, '5.3.0', '<')) set_magic_quotes_runtime (0);' –

4
ini_set('magic_quotes_runtime', 0) 

, denke ich.

+0

die magic_quotes_runtime Option für ini_set ist auch in PHP 6.0.0 – Shawn

64

Überprüfen Sie, ob es zuerst angezeigt wird. Das sollte die Warnung loswerden und es wird sicherstellen, dass, wenn Ihr Code auf älteren PHP-Versionen ausgeführt wird, magische Zitate tatsächlich deaktiviert sind.

Entfernen Sie diese Codezeile nicht wie von anderen vorgeschlagen, es sei denn, Sie können 100% ig sicher sein, dass der Code niemals vor PHP 5.3 ausgeführt wird.

<?php 
// Check if magic_quotes_runtime is active 
if(get_magic_quotes_runtime()) 
{ 
    // Deactivate 
    set_magic_quotes_runtime(false); 
} 
?> 

get_magic_quotes_runtime ist NICHT veraltet in PHP 5.3.
Quelle: http://us2.php.net/get_magic_quotes_runtime/

+0

+1 von mir entfernt, nette Erklärung. –

+0

@steereofrog - bist du sicher? Ich habe nicht getestet, aber die get-Funktion zeigt das nicht in der Dokumentation, während die eingestellte Funktion dies eindeutig tut. – philfreo

4

Aktualisierung auf Version 1.6 von FPDF.

14

Ich habe FPDF v. 1.53 und wollte nicht wegen möglicher Nebenwirkungen aktualisieren. Ich habe den folgenden Code nach Yacoby:

Linie 1164:

if (version_compare(PHP_VERSION, '5.3.0', '<')) { 
    $mqr=get_magic_quotes_runtime(); 
    set_magic_quotes_runtime(0); 
} 

Linie 1203:

if (version_compare(PHP_VERSION, '5.3.0', '<')) { 
    set_magic_quotes_runtime($mqr); 
} 
+0

Dies ist in der Tat die beste Lösung. +1 –

2

Gust fügen Sie das Präfix "@" vor der Funktion @set_magic_quotes_runtime zu sein (0) ; Nicht mehr in PHP unterstützt 5.4 und nicht entfernen oder die Funktion

1

Fügen Sie diesen Code in das Anfangs des Skripts Problem meine Antwort zu lösen deaktivieren auf

@set_magic_quotes_runtime(false); 
ini_set('magic_quotes_runtime', 0); 
Verwandte Themen