Be aware that even using ini_set to set 'magic_quotes_runtime' will stop working in PHP 5.4. See http://php.net/manual/en/info.configuration.php#ini.magic-quotes-runtime
(PHP 4, PHP 5)
set_magic_quotes_runtime — Establece el valor de configuración activo actual de magic_quotes_runtime
Esta función fue declarada OBSOLETA en PHP 5.3.0 y ELILMINADA a partir de PHP 7.0.0.
$new_setting
) : boolEstablecer el valor de configuración activo actual de magic_quotes_runtime.
Desde PHP 5.3, esta función está obsoleta y se emitirá una advertencia E_DEPRECATED si se ejecuta. Desde PHP 5.4, esta función también emitirá un error E_CORE_ERROR al intentar habilitar las comillas mágicas.
new_setting
FALSE
para desactivado, TRUE
para activado.
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
Ejemplo #1 Ejemplo de set_magic_quotes_runtime()
<?php
// Crear un puntero de fichero temporal
$fp = tmpfile();
// Escribir algunos datos en el puntero
fwrite($fp, '\'PHP\' es un acrónimo recursivo');
// Sin magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(false);
echo 'Sin magic_quotes_runtime: ' . fread($fp, 64), PHP_EOL;
// Con magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(true);
echo 'Con magic_quotes_runtime: ' . fread($fp, 64), PHP_EOL;
// Limpiar
fclose($fp);
?>
El resultado del ejemplo sería:
Sin magic_quotes_runtime: 'PHP' es un acrónimo recursivo Con magic_quotes_runtime: \'PHP\' es un acrónimo recursivo
Be aware that even using ini_set to set 'magic_quotes_runtime' will stop working in PHP 5.4. See http://php.net/manual/en/info.configuration.php#ini.magic-quotes-runtime
You should NEVER rely on magic quotes or addslashes for security in an SQL context. You should ALWAYS use proper escape functions, such as mysql_real_escape_string. Failure to do so may result in an SQL injection vulnerability.
A simple check and disabling of magic quotes whenever needed (e.g. if you deploy to multiple servers or you don't know the target server's PHP version).
<?php
if(version_compare(PHP_VERSION, '5.3.0', '<')){
set_magic_quotes_runtime(0);
}
?>
get_magic_quotes runtime and set_magic_quotes_runtime are useful when you want to read some data in a binary file using fread() and some bytes in such file may be interpreted as \ (backslash), " (double quotes), ' (simple quote) or any "special" character that has a meaning for string processing.