Nov
02<?php
class sfToolkit {
public static function stripslashesDeep($value) {
return is_array($value) ? array_map(array('sfToolkit', 'stripslashesDeep'), $value) : stripslashes($value);
}
}
// 通常这么用
if (get_magic_quotes_gpc()) {
$_GET = sfToolkit::stripslashesDeep($_GET);
}
?>
class sfToolkit {
public static function stripslashesDeep($value) {
return is_array($value) ? array_map(array('sfToolkit', 'stripslashesDeep'), $value) : stripslashes($value);
}
}
// 通常这么用
if (get_magic_quotes_gpc()) {
$_GET = sfToolkit::stripslashesDeep($_GET);
}
?>
为了适应不同的服务器设置,首先判断是否打开了 magic_quotes,如果打开了,在开始的地方就全部过滤。
后面程序统一默认为 magic_quotes 已关闭,避免了多次转义的问题。
一行代码的函数,两点需要注意,一个是递归调用,另一个是传递回调函数的方法,可以引用一个类的静态方法。
实现过程,比较优雅,不是吗?








