求解这段PHP代码是什么意思,作用是什么

if(get_magic_quotes_gpc()){functionstripslashes_deep($value){$value=is_array($value)?... if (get_magic_quotes_gpc()) {
function stripslashes_deep($value)
{
$value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
return $value;
}

$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
展开
 我来答
莫路草根
2018-04-24 · TA获得超过4102个赞
知道大有可为答主
回答量:4184
采纳率:85%
帮助的人:1007万
展开全部

get_magic_quotes_gpc()函数是PHP内置的函数,这个函数的作用就是得到php.ini设置中magic_quotes_gpc选项的值。

如果magic_quotes_gpc=On,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。

从5.4.0版本开始,始终返回 FALSE,因为这个魔术引号功能已经从 PHP 中移除了。 

这段代码解释为:

if (get_magic_quotes_gpc()) {//如果设置了此参数,执行下面的代码
//设置自定义函数,对传入的参数进行转义
    function stripslashes_deep($value)
    {
    //判断传入的值是数组时回调使用自身,对数组内所有的子数组进行细化到字符串,然后对字符串进行转义
        $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
        return $value;
    }
    //对POST、GET、COOKIE、REQUEST(所有提交的数据)数据进行上面自定义函数的转义,并递归到每一个子数组。
    $_POST = array_map('stripslashes_deep', $_POST);
    $_GET = array_map('stripslashes_deep', $_GET);
    $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
    $_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式