PHP 请求参数验证(php-verif)

这篇博客介绍了如何在PHP中进行请求参数验证,包括安装PHP验证库、引入自动加载和命名空间、注册验证规则以及快速使用方法。同时详细讲解了注册规则的参数说明,特别是规则名、参数名和错误信息的设置。还提供了验证器的错误信息返回格式和自定义错误信息的方法。最后,给出了验证库的GitHub仓库链接。

安装

composer require angletf/php-verify

引入自动加载和命名空间

include_once "../vendor/autoload.php";
use angletf\Verify;

注册规则

$rule = [
    'name' => [
        'type' => 'string',
        'regex' => '/^.{3}$/u',
        'min' => 1,
        'max' => 4,
        'length' => 3,
        'error' => [
            'lack' => '没有{V_PARAM}参数',
            'type' => '{V_PARAM}不是{V_DATA}类型',
            'regex' => '{V_PARAM}匹配失败',
            'min' => '{V_PARAM}最小不能超过{V_DATA}位',
            'max' => '{V_PARAM}最大不能超过{V_DATA}位',
            'length' => '{V_PARAM}不是{V_DATA}位'
        ],
    ],
    'age' => [
        'type' => 'int',
        'min' => 20,
        'max' => 99,
        'default' => 20,
        'error' => [
            'type' => '{V_PARAM}不是{V_DATA}类型',
            'min' => '{V_PARAM}最小不能超过{V_DATA}',
            'max' => '{V_PARAM}最大不能超过{V_DATA}',
            'length' => '{V_PARAM}不是{V_DATA}位'
        ],
    ],
];

快速使用

//伪造一个post请求
$_POST = [
    'name' => 'tao',
    'age' => '22'
];



try {
    
    //注册规则, 并且返回实例
    $vInst = Verify::registerRule($rule);

    //第一个参数是需要验证的数组($_POST, $_GET)
    //第二个参数是需要验证哪些参数
    //第三个参数是按照第二个参数的顺序返回参数, 是一个引用类型
    //如果验证失败, 则输出规则中对应的信息
    if (!$vInst->checkParams($_POST, ['name', 'age'], $args)) {
        echo $vInst->getError();
        return;
    }

    list($name, $age) = $args;

    var_dump($name);
    var_dump($age);


} catch (\Exception $e) {
    //handle an exception
    echo 'Exception: ' . $e->getMessage();
}

注册规则参数说明

规则名&参数名

规则注册接收一个二维数组, error中的lack是必填字段, 当有default验证器时可以忽略这个选项

[
    '验证参数名' => [
        '验证器1' => '验证器需要确认的规范值',
        '验证器2' => '验证器需要确认的规范值',
        ...
        'error' => [
            'lack' => '这个参数缺失(必填), 当有default验证器时可以忽略这个选项',
            '验证器1' => '当验证器1验证不通过时返回的错误信息',
            '验证器2' => '当验证器2验证不通过时返回的错误信息',
            ....
        ]
    ]
    ...
]

验证器

验证器名可允许的值
typestring, float, int, array
regex正则, 例如’/^.{3}$/u’
min参数不能小于xxx, 如果验证对象是数字类型则验证大小, 如果是字符类型则使用utf-8编码验证长度
max参数不能大于xxx, 如果验证对象是数字类型则验证大小, 如果是字符类型则使用utf-8编码验证长度
length验证参数长度, 如果验证对象是数字则转化为字符, 使用utf-8编码验证长度
default当验证中没有这个参数时, 会使用默认值返回, 默认值不会经过验证

错误信息返回

error是数组对应匹配规则报错的自定义信息, 如果有匹配失败则返回某个规则的错误用户自定义信息, 不限于字符串

error规则中可以注入的参数

参数介绍
{V_PARAM}当前验证的参数
{V_NAME}验证器的名字
{V_DATA}验证器的规范值

Verify API

方法介绍
Verify Verify::registerRule ( array rules)注册规则, 并且返回实例
bool Verify::checkParams (array request_params, array check_params, &array result)验证参数

github仓库地址
https://github.com/AngleTF/php-verify

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值