bitapps / wp-validator
WordPress 验证和清理库
Requires
- php: >=5.6
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-03 08:16:47 UTC
README
使用 PHP 库验证和清理表单输入和 API 请求,该库受 Laravel 启发,专门为 WordPress 设计。
概述
WP Validator 是一个受 Laravel 启发的全面 PHP 包。它简化了 WordPress 的数据验证和清理过程,为开发者提供了一个灵活且用户友好的解决方案,以确保用户输入满足特定标准并防范常见漏洞。
特性
- 数据验证:轻松验证用户输入、表单提交和 API 请求。
- 自定义验证规则:定义满足您应用程序特定需求的自定义验证规则。
- 错误信息:详细的错误信息,帮助用户理解验证失败的原因。
- 数据清理:可选的数据清理函数,用于清理和格式化数据。
示例用法
要在您的 PHP 应用程序中使用 wp-validator 包进行数据验证,请按照以下步骤操作
1. 安装包
首先,使用 Composer 安装 WP Validator 包
composer require bitapps/wp-validator
2. 初始化验证器
从包中创建 Validator 类的实例
use BitApps\WPValidator\Validator; $validator = new Validator;
有关可以使用 $validator
的公共方法,请参阅 验证器实例方法 部分。
3. 定义您的数据和验证规则
准备好您要验证的数据并定义验证规则。以下是一个示例
$data = [ 'first_name' => 'John', 'last_name' => '', 'email' => 'email@example', 'password' => '##112233', 'confirm_password' => '##112233', ]; $rules = [ 'first_name' => ['required', 'string'], 'last_name' => ['required', 'string'], 'email' => ['required', 'email'], 'password' => ['required', 'min:8'], 'confirm_password' => ['required', 'min:6', 'same:password'], ];
在 可用验证规则 部分中探索所有可用的验证规则及其用法。
4. 自定义错误信息(可选)
如果您需要自定义错误信息,可以使用 $customMessages
数组。在此示例中,我们将其留空。
$customMessages = [];
有关自定义错误信息的更多信息,请参阅 自定义错误信息 部分。
5. 映射属性名称(可选)
使用 $attributes
数组将字段名称映射到用户友好的标签,这些标签将用于错误信息。
$attributes = [ 'first_name' => 'First Name', 'last_name' => 'Last Name', 'email' => 'Email', ];
6. 执行验证
使用 make
方法执行验证
$validation = $validator->make($data, $rules, $customMessages, $attributes);
7. 处理验证结果
检查验证是否失败,如果是,则打印验证错误
if ($validation->fails()) { echo "<pre>"; echo print_r($validation->errors(), true); echo "</pre>"; } else { echo "Success!"; }
验证器实例方法
make($data: array, $rules: array[, $customMessages?: array, $attributes?: array])
此方法根据提供的 $rules
对 $data
进行验证。如果传递 $customMessages
和 $attributes
,它将根据这些信息生成错误信息(如果有)。
fails(): boolean
此方法将根据验证状态返回 true 或 false。如果返回 true,则表示验证器在数据中发现了错误,您可以通过 errors()
方法获取这些错误。
errors(): array
此方法将返回基于在 make
方法中传递的格式化 $data
数组的错误信息(如果有)。
可用验证规则
WP Validator 提供了一套全面的验证规则,以满足您的需求。以下是可用规则列表
accepted
检查待验证的字段是否是以下之一:'yes'
、'on'
、'1'
、1
、'true'
、true
。这适用于验证协议类型字段。array
检查待验证的字段是否为数组。between:min,max
检查待验证的字段是否在:min
和:max
(包含)范围内。- 对于字符串数据,值对应字符数。
- 对于数值数据,值对应给定的整数。
- 对于数组,值对应数组的计数。
date
检查待验证的字段是否是有效的日期(根据strtotime
PHP函数)。digit_between:min,max
检查整数数字的位数是否在:min
和:max
(包含)范围内。digits:value
检查整数数字的位数是否正好等于:digits
。email
检查待验证的字段是否是有效的电子邮件地址。integer
检查待验证的字段是否是整数。ip
检查待验证的字段是否是有效的IP地址(IPv4,IPv6)。ipv4
检查待验证的字段是否是有效的IPv4地址。ipv6
检查待验证的字段是否是有效的IPv6地址。json
检查待验证的字段是否是有效的JSON字符串。lowercase
检查待验证的字段是否全部由小写字母组成。mac_address
检查待验证的字段是否是有效的MAC地址。max:value
检查待验证的字段是否小于或等于:max
。- 对于字符串数据,值对应字符数。
- 对于数值数据,值对应给定的整数。
- 对于数组,值对应数组的计数。
min:value
检查待验证的字段是否具有最小值:min
。- 对于字符串数据,值对应字符数。
- 对于数值数据,值对应给定的整数。
- 对于数组,值对应数组的计数。
nullable
将待验证的字段设置为可选(允许为null),但如果指定了其他验证规则且值不为null,则仍需遵守。numeric
检查待验证的字段是否是有效的实数。required
检查待验证的字段是否存在且不为空。如果字段满足以下任一条件,则认为是“空”的:- 值是
NULL
或FALSE
。 - 值是空字符串。
- 值是空数组或空可计数对象。
- 值是
same:field
检查待验证的字段是否与指定的:other
属性相等。size:value
检查待验证的字段的大小是否与:size
完全相同。- 对于字符串数据,值对应字符数。
- 对于数值数据,值对应给定的整数。
- 对于数组,值对应数组的计数。
string
检查给定的值是否是字符串。uppercase
检查字符串值是否全部由大写字母组成。url
检查值是否是有效的URL。
缺少您需要的任何验证规则?请参阅自定义验证规则部分,了解如何在项目中创建和使用自定义验证规则。
可用的清理函数
-
sanitize_email
删除电子邮件地址中不允许的所有字符。
例如:['email' => ['required', 'email', 'sanitize:email']
-
sanitize_file_name
通过删除特殊字符清理文件名。
例如:['file' => ['required', 'string', 'sanitize:file_name']
-
sanitize_html_class
使用允许的HTML标签清理类属性的内容。
例如:['class' => ['required', 'string', 'sanitize:html_class']
-
sanitize_key
使用允许的HTML标签清理键属性的内容。
例如:['key' => ['required', 'string', 'sanitize:sanitize_key']
-
sanitize_text
去除字符串中不允许的所有字符。
例如:['name' => ['required', 'string', 'sanitize:text']]
-
sanitize_textarea_field
对textarea字段的内容进行净化,允许使用指定的HTML标签。
例如:['content' => ['required', 'string', 'sanitize:textarea']]
-
sanitize_title
去除标题中不允许的所有字符。
例如:['title' => ['required', 'string', 'sanitize:title']]
-
sanitize_user
净化用户名,去除不安全的字符。
例如:['user' => ['required', 'string', 'sanitize:user']]
-
sanitize_url
通过移除HTML属性中不合法的字符来净化URL。
例如:['url' => ['required', 'url', 'sanitize:url']]
-
wp_kses
使用允许的HTML标签净化内容。
例如:['content' => ['required', 'string', 'sanitize:wp_kses|a.href,a.title,br,em,strong']]
-
wp_kses_post
为帖子内容允许的HTML标签净化内容。
例如:['content' => ['required', 'string', 'sanitize:wp_kses_post']]
自定义验证规则
将验证规则类创建到您的项目中
<?php use BitApps\WPValidator\Rule; class BooleanRule extends Rule { // error message if fails... private $message = "The :attribute must be a boolean"; public function validate($value) { // validation code here... return is_bool($value); } public function message() { return $this->message; } }
将它们作为实例传递到$rules
数组中
$rules = [ 'agreed' => ['required', new BooleanRule], ];
自定义错误信息
WP Validator基于验证规则提供默认错误信息。为了增加灵活性,您可以全局更改这些错误信息,甚至为特定字段和验证规则更改
$customMessages = [ 'required' => ':attribute is missing', 'string' => ':attribute cannot contain any numerics', 'between' => 'The :attribute must be given between :min & :max', 'size' => 'The account number must consist of :size characters', ];
现在,对于每个验证规则,它将返回您设置的定制错误信息。注意: :attribute
指的是当前正在验证的字段,如果通过$attributes
数组更改了自定义标签,则充当占位符。我们还有更多这样的占位符;在占位符列表部分中探索它们。
如果您希望有更大的灵活性,并希望为每个验证规则和字段单独自定义错误信息,您也可以实现这一点
$customMessages = [ 'first_name' => [ 'required' => 'First name must be present', 'string' => 'You cannot include anything except letters in the first name', ], 'email' => [ 'email' => 'The provided email is not valid', ], ];
如果您使用了未在自定义消息数组中提到的任何其他验证规则,WP Validator将遵循默认错误信息。
占位符列表
:attribute
它将引用正在验证的字段名称,如果通过$attributes
数组更改了自定义标签,则引用自定义标签。:value
它将引用正在验证的字段值。:min
它将引用between
、digits_between
、min
验证规则的最小值参数。:max
它将引用between
、digits_between
、max
验证规则的最大值参数。:digits
它将引用digits
验证规则的价值参数。:other
它将引用same
验证规则的字段参数。:size
它将引用size
验证规则的价值参数。
贡献
我们欢迎社区的贡献。如果您发现了一个错误或有一个功能建议,请打开一个问题或提交一个pull请求。
许可证
此包是开源的,可在MIT许可证下使用。