溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php用戶輸入fiter函數(shù)的校驗

發(fā)布時間:2020-07-15 13:58:59 來源:網(wǎng)絡(luò) 閱讀:386 作者:guanchaoguo 欄目:web開發(fā)

php用戶輸入fiter函數(shù)的校驗:

代碼如下:

<?php

header("Content-type: text/html; charset=utf-8");


    function filter_param($paramArr, $filterArr)

    {

        $res = filter_var_array($paramArr, $filterArr);     //參數(shù)不合法-flase, 沒傳參數(shù)-null

        foreach ($res as $key=>$val) {

            //再判斷未傳的參數(shù)。

            if (is_null($val)) {

                //1.如果是必填項

                if ($filterArr[$key]['required']) {

                    if (isset($filterArr[$key]['options']['default'])) {

                        //1.1如果有default值,則設(shè)置為default值。

                        $res[$key] = $filterArr[$key]['options']['default'];

                    } else {

                        //1.2如果沒有default值,拋出異常。

                        return [false,"參數(shù) $key 為必填!"];

                    }

                } else {

                    //$res[$key]='';      //這里是默認(rèn)把null值改為空值。是否有必要?

                     return [false,"缺少參數(shù) $key !"];

                }

            }

        }


        //如果有驗證失敗的,拋出異常。

        if (false === $val) {

            return [false,"參數(shù) $key 格式非法!"];

        }


        return [true,"驗證通過"];

    }




//每個model里,都寫個checkParam函數(shù),用來配置驗證的規(guī)則。

function checkParam($arrInput)

{

    //1.先檢查catId

    $filter = array(

            //數(shù)字類型的,必填。只允許 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) ;

}

  //比如這個是輸入的參數(shù)??梢栽囍薷倪@里看看效果。

  $arrInput=array(

    'catId'=>1,

    'title'=>'xx',

    'ip'=>'xxxxxx.com',

    'email'=>'xxxxxx.com',

  );


  //去掉字符串空格

  preg_replace("/\s/", "", $val);

    $res = checkParam($arrInput);

    echo  $res[1];


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI