accexs/validator

基于 wixel/gump (https://wixelhq.com) 和 laravel 的可扩展 OOP PHP 输入验证包

1.1.0 2018-04-18 17:32 UTC

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);
}