PHP接口统一设置参数验证

// type number,string,array ,email,ip,regexp
$checkArray = array(
    'a'=>array(
        'required'=>true,
        'type' =>'number',
        'options' =>'',
        'error' =>'',
    ),
'b'=>array(
    'required'=>true,
    'type' =>'email',
    'options' =>'',
    'error' =>'',
),
'c'=>array(
    'required'=>false,
    'type' =>'regexp',
    'options' =>"/^[0-9a-z]{1,5}$/i",
    'error' =>'',
),
'd'=>array(
    'required'=>true,
    'type' =>'email',
    'options' =>'',
    'error' =>'',
),

);

function checkParam ($checkArray,$paramArray) {
    $keys = array_keys($checkArray);
    try{     
        if(!is_array($paramArray))
        throw new Exception(' $param is not array'); 
    } catch ( Exception $e) {
        echo $e ->getMessage();die;
    }

    foreach ($paramArray as $key => $value) {
        if( in_array($key, $keys ) ) {
            if( $checkArray[$key]['required'] ) {
                 echo switchCheck($checkArray[$key],$value,$key);
                 echo "\r\n";
            } else {
                if(!empty($value)) {
                    echo switchCheck($checkArray[$key],$value,$key);
                    echo "\r\n"; 
                }
            }


        }


    }
}

function switchCheck ($type , $value,$key) {
    if(empty($type)) return false;
    switch ($type['type']) {
        case 'number':
            if(!is_numeric($value))
                echo $key.' is not number';
            break;

        case 'email':
            if(!filter_var($value,FILTER_VALIDATE_EMAIL) ) 
                echo $key.' is not email';
            break;

        case 'array':
            if(!is_array($value))
                echo $key.' is not array';
            break;

        case 'regexp':
            if(empty($type['options'])) echo $key.' regexp is null';
            if(!filter_var($value,FILTER_VALIDATE_REGEXP,array('options'=>array('regexp'=>$type['options'] ) ) ) )
                echo $key.' regexp error';
            break;
        default:
            if(!$value)
                echo $key.' not null ';
            break;
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值