PHP:当Magic Quotes为ON时,如何(正确)删除数组中的转义引号
发布时间:2020-12-13 18:04:40 所属栏目:PHP教程 来源:网络整理
导读:如您所知,当Magic Quotes为ON时,单引号会在值和键中转义.大多数在运行时删除Magic Quotes的解决方案只能取消值,而不是键.我正在寻找一种能够解决关键和价值观的解决方案…… 我在PHP.net上发现了这段代码: $process = array($_GET,$_POST,$_COOKIE,$_REQUES
如您所知,当Magic Quotes为ON时,单引号会在值和键中转义.大多数在运行时删除Magic Quotes的解决方案只能取消值,而不是键.我正在寻找一种能够解决关键和价值观的解决方案……
我在PHP.net上发现了这段代码: $process = array(&$_GET,&$_POST,&$_COOKIE,&$_REQUEST); while (list($key,$val) = each($process)) { foreach ($val as $k => $v) { unset($process[$key][$k]); if (is_array($v)) { $process[$key][stripslashes($k)] = $v; $process[] = &$process[$key][stripslashes($k)]; } else { $process[$key][stripslashes($k)] = stripslashes($v); } } } unset($process); 但我不喜欢“&”引用和数组,因为我过去有像this one这样的bug … 是否有一种“更好”的方式来在运行时使用魔术引号(键和值)而不是上面的方法?
我认为这是一个更清洁,避免参考错误:
function unMagicQuotify($ar) { $fixed = array(); foreach ($ar as $key=>$val) { if (is_array($val)) { $fixed[stripslashes($key)] = unMagicQuotify($val); } else { $fixed[stripslashes($key)] = stripslashes($val); } } return $fixed; } $process = array($_GET,$_POST,$_COOKIE,$_REQUEST); $fixed = array(); foreach ($process as $index=>$glob) { $fixed[$index] = unMagicQuotify($glob); } list($_GET,$_REQUEST) = $fixed; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |