zoukankan      html  css  js  c++  java
  • php 多种输入参数完整性检查

    说明:(1)输入可能有多重类型的输入,即需要对输入参数进行多次匹配。

    (2)希望能够返回缺少的参数

    代码如下:

    /**
     * @param $param  输入参数 (get,post 参数)
     * @param $array  期望存在的参数,可以为多种比如 array(array('value1','value2'),('value2','value3','value4'))
     * @return bool | string 返回结果,如果参数检查符合要求,返回true,否则返回缺少的参数
     */
    function check($param, $array)
    {
        if (!empty($array) && is_string($array[0]))
        {
            $requires = array($array);
        }
        else
        {
            $requires = $array;
        }
    
        $return_key = true;
        $current_like_percentage = -1;    // 参数匹配度(初始值需要设置为一个不可能出现的值)
    
        foreach ($requires as $keys)
        {
            $current_key = true;
            $number = 0;
            foreach ($keys as $key)
            {
                if (!array_key_exists($key,$param))
                {
                    $number++;
                    $current_key = $key;
                }
            }
    
            $like_precentage = (count($keys) - $number) / (count($keys));    //计算输入参数在当前要求输入参数的匹配率
            if ($like_precentage === 1)
            {
                return true;    //完全匹配直接返回成功
            }
            else if ($like_precentage > $current_like_percentage)
            {
                $current_like_percentage = $like_precentage;
                $return_key = $current_key;
            }
    
        }
    
        return $return_key;
    }
  • 相关阅读:
    Django前后端分离项目部署
    python虚拟环境设置
    pandas高级操作
    Auth模块
    Django中间件
    CSRF(Cross-site request forgery)跨站请求伪造
    cookie与session组件
    创建多对多表关系的三种方式
    form组件
    python2和python3的区别
  • 原文地址:https://www.cnblogs.com/smallrookie/p/6794906.html
Copyright © 2011-2022 走看看