php 多种输入参数完整性检查

全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:925篇文章
  • 发布时间:2021年10月06日 8:58:28
  • 所属分类:PHP+MySql
  • 阅读次数:1513次阅读
  • 标签:

说明:(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;
}

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!