我注意到PHP laravel框架中的代码块类似于以下代码:
if (get_magic_quotes_gpc())
{
$magics = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
foreach ($magics as &$magic)
{
$magic = array_strip_slashes($magic);
}
}
我真的不知道如何测试这个,但如果我把它放在我在每个页面上包含的start.php文件中,它会处理魔术引号,所以我不必担心它们?
编辑:
这是laravel中的array_strip_slashes:
function array_strip_slashes($array)
{
$result = array();
foreach($array as $key => $value)
{
$key = stripslashes($key);
// If the value is an array, we will just recurse back into the
// function to keep stripping the slashes out of the array,
// otherwise we will set the stripped value.
if (is_array($value))
{
$result[$key] = array_strip_slashes($value);
}
else
{
$result[$key] = stripslashes($value);
}
}
return $result;
}
答案 0 :(得分:1)
您没有显示array_strip_slashes
,但假设它正常工作 -
是的,该功能应该撤消魔术引号效果。如果魔法引号不,则该代码根本不会运行。
正如其他人无疑也会指出的那样,最好将其关闭。唉,在某些共享托管环境中,很难做到这一点。充其量,代码将使您免于被烧毁。在最糟糕的情况下,当历史学家回顾魔术引言并嘲笑我们时,它将成为未来某些时候可以被删除的无害瑕疵。
答案 1 :(得分:0)
这将"照顾"魔术引用,因为它将删除它们,这是一件好事。关闭它们会好得多(在PHP 5.3中它们应该默认关闭)。