2010-02-07 16 views
51

Recibo este mensaje cuando trato de ejecutar un script de php que tengo que usar pero no escribí.¿Cómo puedo reemplazar el valor obsoleto set_magic_quotes_runtime en php?

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

Aquí es la línea 1810:

set_magic_quotes_runtime(0); 

Si esto es una función obsoleta, ¿qué puedo reemplazarlo con?

¡Muchas gracias!

Respuesta

6

Dado que ahora Magic Quotes está desactivado (y está programado para su eliminación), puede eliminar esa llamada de función de su código.

+2

ver mi respuesta sobre por qué esto puede no ser una buena idea (http://stackoverflow.com/questions/2217955/how-can-i-replace-the-deprecated-set-magic-quotes-runtime-in-php/2218021#2218021) – philfreo

3

No es necesario que lo reemplace con nada. La configuración magic_quotes_runtime es removed in PHP6 por lo que la llamada a la función no es necesaria. Si desea mantener la compatibilidad hacia atrás puede ser conveniente para envolverlo en una sentencia if comprobar phpversion usando version_compare

+1

Y para respaldar esto con el código: 'if (version_compare (PHP_VERSION, '5.3.0', '<')) set_magic_quotes_runtime (0);' –

4
ini_set('magic_quotes_runtime', 0) 

supongo.

+0

la opción magic_quotes_runtime para ini_set también se ha eliminado en PHP 6.0.0 – Shawn

64

Compruebe si está activado primero. Eso debería eliminar la advertencia y garantizará que si el código se ejecuta en versiones anteriores de PHP, las comillas mágicas estén desactivadas.

No elimine simplemente esa línea de código como otros sugirieron a menos que pueda estar 100% seguro de que el código nunca se ejecutará en nada antes de PHP 5.3.

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

get_magic_quotes_runtime NO está en desuso en PHP 5.3.
Fuente: http://us2.php.net/get_magic_quotes_runtime/

+0

+1, buena explicación. –

+0

@stereofrog - ¿estás seguro? No he probado pero la función get no muestra eso en la documentación, mientras que la función set claramente lo hace. – philfreo

4

Actualiza a la versión 1.6 de FPDF.

14

Utilicé FPDF v. 1.53 y no quería actualizar debido a posibles efectos secundarios. He utilizado el siguiente código de acuerdo con Yacoby:

Línea 1164:

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

Línea 1203:

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

Esta es de hecho la mejor solución. +1 –

2

Ráfagas añadir el prefijo "@" antes de la función de ser @set_magic_quotes_runtime (0) ; No compatible más en PHP 5.4, y no quitar o deshabilitar la función

1

añadirlos código en la parte superior de la secuencia de comandos para resolver el problema

@set_magic_quotes_runtime(false); 
ini_set('magic_quotes_runtime', 0); 
Cuestiones relacionadas