accexs / validator
基于 wixel/gump (https://wixelhq.com) 和 laravel 的可扩展 OOP PHP 输入验证包
1.1.0
2018-04-18 17:32 UTC
Requires
- php: >=5.6
This package is auto-updated.
Last update: 2024-09-20 11:09:45 UTC
README
基于面向对象 PHP 的 Validator 类,基于 https://github.com/Wixel/GUMP
使用 composer 安装
将以下内容添加到您的 composer.json 文件中
{ "require": { "accexs/validator": "dev-master" } }
然后在您的项目目录中的终端中运行
composer install
或者直接执行
composer require accexs/validator
示例
require_once('vendor/autoload.php'); $validator = new Accexs\Validator; $valid = $validator->validation_rules(array( 'username' => 'required|alpha_num|max_len,100|min_len,6', 'password' => 'required|max_len,100|min_len,6', 'email' => 'required|email', 'gender' => 'required|exact_len,1|contains,m f', 'credit_card' => 'required|creditcard' )); print_r($valid);
可用的验证器
- required
确保指定的键值存在且不为空
- email
检查是否为有效的电子邮件地址
- maxlen:n
检查键值长度,确保它不超过指定的长度。n = 长度参数。
- minlen,n
检查键值长度,确保它不短于指定的长度。n = 长度参数。
- exact_len:n (待办)
确保键值长度与指定的长度精确匹配。n = 长度参数。
- alpha
确保键值中只包含字母字符(a-z,A-Z)
- alpha_num
确保键值中只包含字母数字字符(a-z,A-Z,0-9)
- alpha_dash
确保键值中只包含字母数字字符、破折号和下划线(a-z,A-Z,0-9,_-)
- alpha_space (待办)
确保键值中只包含字母数字字符和空格(a-z,A-Z,0-9,\s)
- numeric
确保只包含数字键值
- integer
确保只包含整数键值
- boolean
检查是否为 PHP 接受的布尔值,对于 "1"、"true"、"on" 和 "yes" 返回 TRUE
- float
检查是否为浮点值
- url
检查是否为有效的 URL 或子域名
- ip
检查是否为有效的通用 IP 地址
- ipv4
检查是否为有效的 IPv4 地址
- ipv6
检查是否为有效的 IPv6 地址
- creditcard
检查是否为有效的信用卡号(使用 MOD10 校验和算法)
- contains:n (待办)
验证值是否包含在预定义的值集中
- contains_list:n (待办)
验证值是否包含在预定义的值集中。有效的值列表必须以分号分隔的列表格式提供(如:value1;value2;value3;..;valuen)。如果发生验证错误,则不显示有效值列表(这意味着错误将只是说输入无效,而不会向用户显示有效集合)。
- doesnt_contain_list:n (待办)
验证值是否不包含在预定义的值集中。分号 (;) 分隔的列表不输出。请参阅上面的规则以获取更多信息。
- min_numeric (待办)
确定提供的数值是否高于或等于特定值
- max_numeric (待办)
确定提供的数值是否低于或等于特定值
- date
确定提供的输入是否为有效的日期(ISO 8601)
- starts
确保值以特定字符/字符集开头
- phone_number
验证符合以下示例的电话号码:555-555-5555 , 5555425555, 555 555 5555, 1(519) 555-4444, 1 (519) 555-4422, 1-555-555-5555
- regex
您可以使用以下格式传递自定义正则表达式:'regex,/your-regex/'
- json
验证字符串是否为有效的 JSON 格式
创建自己的验证器
使用回调函数,添加自定义验证器和过滤器变得简单。
require("gump.class.php"); /* Create a custom validation rule named "is_object". The callback receives 3 arguments: The field to validate, the values being validated, and any parameters used in the validation rule. It should return a boolean value indicating whether the value is valid. */ GUMP::add_validator("is_object", function($field, $input, $param = NULL) { return is_object($input[$field]); }); /* Create a custom filter named "upper". The callback function receives two arguments: The value to filter, and any parameters used in the filter rule. It should returned the filtered value. */ GUMP::add_filter("upper", function($value, $params = NULL) { return strtoupper($value); });
设置自定义字段名称
您可以通过使用 GUMP::set_field_name($field, $readable_name)
方法轻松覆盖表单字段名称,以在错误信息中提高可读性,如下所示
$data = array( 'str' => null ); $rules = array( 'str' => 'required' ); GUMP::set_field_name("str", "Street"); $validated = GUMP::is_valid($data, $rules); if($validated === true) { echo "Valid Street Address\n"; } else { print_r($validated); }