/**
* 过滤数组中的数据,避免sql注入、xss等问题
* @param array $arr 要过滤的数组(可以是多维数组)
* @param string $filter 指定的过滤方法名
*/
function filterArray($arr, $filter='strip_tags,htmlspecialchars,trim') {
if(!is_array($arr)) return false;
$result = array();
$filters = explode(',', $filter);
foreach ($arr as $key => $val) {
if(is_array($val)){
$result[$key] = filterArray($val);
}else{
foreach($filters as $f) {
$val = call_user_func($f, $val);
}
$result[$key] = $val;
}
}
return $result;
}
函数调用示例:
$arr = array(
'id' => '1 ',
'name' => 'jack&',
'tag' => '<a href="#">test</a>123',
'arr' => array('id'=>'1 ', 'name'=>"jack&")
);
var_dump( filterArray($arr) );