diff --git a/Think/Input.php b/Think/Input.php index 6badc897..64de2f9d 100644 --- a/Think/Input.php +++ b/Think/Input.php @@ -11,6 +11,8 @@ // $Id$ namespace Think; class Input { + // 全局过滤规则 + static $filter = NULL; /** * 获取系统变量 支持过滤和默认值 @@ -43,6 +45,15 @@ class Input { case 'globals': $input =& $GLOBALS;break; default:return NULL; } + // 变量全局过滤 + array_walk_recursive($input,'self::filter_exp'); + if(self::$filter) { + $_filters = explode(',',self::$filter); + foreach($_filters as $_filter){ + // 全局参数过滤 + array_walk_recursive($input,$_filter); + } + } if(''== $args[0]) { // 返回全部数据 return $input; @@ -67,4 +78,10 @@ class Input { return $data; } + // 过滤表单中的表达式 + static private filter_exp(&$value){ + if (in_array(strtolower($value),array('exp','or'))){ + $value .= ' '; + } + } } \ No newline at end of file diff --git a/base.php b/base.php index 9774af89..8224f1ab 100644 --- a/base.php +++ b/base.php @@ -283,11 +283,4 @@ function S($name,$value='',$options=null) { $expire = is_numeric($options)?$options:NULL; return Think\Cache::set($name, $value, $expire); } -} - -// 过滤表单中的表达式 -function filter_exp(&$value){ - if (in_array(strtolower($value),array('exp','or'))){ - $value .= ' '; - } } \ No newline at end of file