您好,登錄后才能下訂單哦!
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。