您好,登录后才能下订单哦!
php用户输入fiter函数的校验:
代码如下:
<?php
header("Content-type: text/html; charset=utf-8");
function filter_param($paramArr, $filterArr)
{
$res = filter_var_array($paramArr, $filterArr); //参数不合法-flase, 没传参数-null
foreach ($res as $key=>$val) {
//再判断未传的参数。
if (is_null($val)) {
//1.如果是必填项
if ($filterArr[$key]['required']) {
if (isset($filterArr[$key]['options']['default'])) {
//1.1如果有default值,则设置为default值。
$res[$key] = $filterArr[$key]['options']['default'];
} else {
//1.2如果没有default值,抛出异常。
return [false,"参数 $key 为必填!"];
}
} else {
//$res[$key]=''; //这里是默认把null值改为空值。是否有必要?
return [false,"缺少参数 $key !"];
}
}
}
//如果有验证失败的,抛出异常。
if (false === $val) {
return [false,"参数 $key 格式非法!"];
}
return [true,"验证通过"];
}
//每个model里,都写个checkParam函数,用来配置验证的规则。
function checkParam($arrInput)
{
//1.先检查catId
$filter = array(
//数字类型的,必填。只允许 0-1。
"catId" => array(
"required"=>1,
"filter"=>FILTER_VALIDATE_INT,
"options"=>array(
"min_range" =>0,
"max_range" =>1,
)
),
//字符串类型的,必填。长度大于1。
"title" => array(
"required"=>1,
"filter"=>FILTER_VALIDATE_REGEXP,
"options"=>array(
"regexp" =>"/^.+/",
)
),
//字符串类型的,非必填。但要是填了的话,则格式必须为email。
"email" => array(
"filter"=>FILTER_VALIDATE_EMAIL,
),
"ip" => array(
"filter"=>FILTER_VALIDATE_IP,
),
);
return filter_param($arrInput, $filter) ;
}
//比如这个是输入的参数。可以试着修改这里看看效果。
$arrInput=array(
'catId'=>1,
'title'=>'xx',
'ip'=>'xxxxxx.com',
'email'=>'xxxxxx.com',
);
//去掉字符串空格
preg_replace("/\s/", "", $val);
$res = checkParam($arrInput);
echo $res[1];
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。