猿问

PHP过滤查询字符

ThinkPHP中有一段源代码:

这个函数是对$_POST中的数据进行过滤。

array_walk_recursive($_POST,'think_filter') ; //对数组成员递归应用think_filter函数。

请问:在下面这个函数中,怎么体现过滤了?value匹配条件后,value后面连接一个空格就是过滤了?

我觉得,应该是$value="";才对啊,ThinkPHP源码中是.=,请大神说一下,这是什么意思?

function think_filter(&$value){
   // TODO 其他安全过滤

   // 过滤查询特殊字符
    if(preg_match('/^(EXP|NEQ|GT|EGT|LT|ELT|OR|XOR|LIKE|NOTLIKE)$/i',$value)){
        $value .= ' ';
    }
}


王亚松
浏览 1448回答 3
3回答

一瞬儿光

$arr = array(     'a' => 1,     'b' => 'LIKE' ) $arr2 = array(     'a' => 1,     'b' => 'LIKE ' ) //这两个数组一样吗? sql  = select field from table where field_id like '%LIKE%'; sql2 = select field from table where field_id like '%LIKE %'; //这两个sql一样吗? function : function think_filter($value){} function2: function think_filter(&$value){} //这两个function的参数一样吗? //弄明白这三个的不同你就明白了。
随时随地看视频慕课网APP
我要回答