PHP会计魔术报价

时间:2012-09-15 19:20:53

标签: php

我注意到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;
}

2 个答案:

答案 0 :(得分:1)

您没有显示array_strip_slashes,但假设它正常工作 -

是的,该功能应该撤消魔术引号效果。如果魔法引号,则该代码根本不会运行。

正如其他人无疑也会指出的那样,最好将其关闭。唉,在某些共享托管环境中,很难做到这一点。充其量,代码将使您免于被烧毁。在最糟糕的情况下,当历史学家回顾魔术引言并嘲笑我们时,它将成为未来某些时候可以被删除的无害瑕疵。

答案 1 :(得分:0)

这将"照顾"魔术引用,因为它将删除它们,这是一件好事。关闭它们会好得多(在PHP 5.3中它们应该默认关闭)。