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

/**
 * 过滤数组中的数据,避免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) );

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值