可以在PHP 5.3中启用“magic_quotes_gpc”吗?

时间:2011-08-09 17:10:17

标签: php magic-quotes-gpc

在PHP 5.3中,可以启用“magic_quotes_gpc”吗?

我知道它在PHP 5.3中已被弃用,但我正在安装的PHP脚本需要这个,否则它将无效。

4 个答案:

答案 0 :(得分:3)

然后不使用该脚本启用魔术引号是非常糟糕的。

  

自PHP 5.3.0起,此功能已被弃用。非常不鼓励依赖此功能。

DOC

WHY-NOT in DOC

答案 1 :(得分:3)

必须在.ini级别完成。它不能在使用ini_set()的脚本中完成,因为在处理ini_set()时,PHP已经完成启动并且已经设置了各种超全局数组(POST / GET / REQUEST / etc ...)并且不会被更改。

您可以使用Apache <Files>指令启用每个脚本的设置,因为为所有PHP脚本启用魔术引号是一个可怕的想法:

<Files needs_gpc.php>
   php_value magic_quotes_gpc 1
</Files>

答案 2 :(得分:2)

您可以使用以下简短脚本模拟magic_quotes:

$_GET = array_map("addslashes", $_GET);
$_POST = ...

请注意,实际上您需要recursive variant。当你在它时,你至少可以使用_real_escape_string而不是addslashes(如果您的数据库和连接仅使用ASCII,那么这实际上是允许的。)

要为所有脚本启用,请使用php.ini选项:

auto_prepend_file = .../fake_magic_quotes.php

至少在PHP 5.3中,仍然可以启用这个过时的功能。

答案 3 :(得分:0)

是的,它可以。默认情况下禁用该功能,但尚未删除。只需修改您的php.ini文件(或使用Marc B的建议,仅为特定脚本启用它)