Action参数绑定,参数值是between的时候多了个空格符,奇怪的bug还是什么原因?
控制器代码: public function test($t=null,$yy=null,$vv=null){ var_dump($_GET); var_dump($t); var_dump($yy); var_dump($vv); exit; } 1.thinkphp返回: array (size=3) 'yy' => string 'between' (length=7) 'vv' => string 'day' (length=3) 't' => string 'between' (length=7) string 'between ' (length=8) string 'between ' (length=8) string 'day' (length=3)
2.对比下yii2返回: array (size=4) 'r' => string 'site/about' (length=10) 'yy' => string 'between' (length=7) 'vv' => string 'day' (length=3) 't' => string 'between' (length=7) string 'between' (length=7) string 'between' (length=7) string 'day' (length=3)
这是TP的安全过滤造成的
谢谢,原来是这个方法呀
function think_filter(&$value){ // TODO 其他安全过滤
// 过滤查询特殊字符
if(preg_match('/^(EXP|NEQ|GT|EGT|LT|ELT|OR|XOR|LIKE|NOTLIKE|NOT BETWEEN|NOTBETWEEN|BETWEEN|NOTIN|NOT IN|IN)$/i',$value)){
$value .= ' ';
}
}