Php 还有一个问题
我没有找到真正的解决办法。 和其他许多人一样,我现在使用jquery所见即所得编辑器,并将输出保存在mysql中。当我加载回编辑器并再次保存它时,问题就出现了。每次按submit时,反斜杠和标记都会增加。 在写DB之前,我会做一个mysql\u real\u escape\u字符串 我递归地使用strpslashes,但它不起作用Php 还有一个问题,php,mysql,recursion,mysql-real-escape-string,stripslashes,Php,Mysql,Recursion,Mysql Real Escape String,Stripslashes,我没有找到真正的解决办法。 和其他许多人一样,我现在使用jquery所见即所得编辑器,并将输出保存在mysql中。当我加载回编辑器并再次保存它时,问题就出现了。每次按submit时,反斜杠和标记都会增加。 在写DB之前,我会做一个mysql\u real\u escape\u字符串 我递归地使用strpslashes,但它不起作用 function decodeEscapedString($value) { if (get_magic_quotes_gpc()) { $value
function decodeEscapedString($value) {
if (get_magic_quotes_gpc()) {
$value = is_array($value) ?
array_map(array('self', 'decodeEscapedString'), $value) :
stripslashes($value);
return $value;
} else
return stripslashes($value);
}
有人能想出个主意吗?
thx我想说,在数组映射中有“self”的地方,有一个轻微的逻辑错误和一个可能的参考错误 假设这是一个类方法,请尝试以下操作
public function filter($value)
{
return get_magic_quotes_gpc() ? $this->clean($value) : $value;
}
protected function clean($value)
{
return is_array($value) ? array_map(array($this, 'clean'), $value) : stripslashes($value);
}
然后您只需调用filter方法,例如
$value = $obj->filter($_POST['something']);
改编自至少在PHP5.4中不会有魔法引号。如果您已经控制了服务器,为什么不首先禁用魔法引号呢?这让一切都变得容易多了。