您的位置:首页 > 数据库

过滤数组中的数据,避免sql注入、xss等问题

2016-07-15 17:55 288 查看
/**
 * 过滤数组中的数据,避免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) );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: