好的,我的托管公司已经把magic_quotes_gpc变成了ON,我用stripslashes()编写了我的PHP脚本。但是现在托管公司说它将关闭magic_quotes_gpc,我想知道现在当stripslashes()存在的时候我的数据会发生什么,我应该检查我的数百万行代码并摆脱stripslashes()吗?或者不去管stripslashes()函数?离开stripslashes()会破坏我的数据吗?
发布于 2010-11-30 23:36:21
您的代码应该使用get_magic_quotes_gpc来查看是否启用了魔术引号,如果启用了,则只使用带斜杠。您应该在所有脚本共享的一个位置运行与以下代码块类似的代码块;如果您在多个位置使用stripslashes,那么您这样做是错误的。
// recursively strip slashes from an array
function stripslashes_r($array) {
foreach ($array as $key => $value) {
$array[$key] = is_array($value) ?
stripslashes_r($value) :
stripslashes($value);
}
return $array;
}
if (get_magic_quotes_gpc()) {
$_GET = stripslashes_r($_GET);
$_POST = stripslashes_r($_POST);
$_COOKIE = stripslashes_r($_COOKIE)
$_REQUEST = stripslashes_r($_REQUEST);
}发布于 2010-11-30 23:35:13
我会开始检查并删除stripslashes()。您可以通过测试magic_quotes_gpc并仅在需要时调用stripslahes()来提前完成此操作。
发布于 2010-11-30 23:43:16
meagar有正确的答案。
但是要遍历这种情况,您需要具有文件内搜索功能的Notepad++之类的工具。复制meagar的代码片段并搜索stripslashes()
https://stackoverflow.com/questions/4315406
复制相似问题