也许你在许多项目中非常烦恼给表单做数据校验, 已经对使用if判断感到厌烦了. 这里就给你提供一个使用一个PHP类解决表单验证的方法.
让我向你介绍G2VALID. 一款轻量级的PHP表单数据校验类, 这会让你节省很多开发时间的. 这个类使用OPP PHP, 所以这会非常容易使用与管理你的项目.
注意: 这个校验类要求php 5.0以上的版本而且其中一些filtering设置要求 C_TYPE , 如果你不了解什么是C_TYPE, 联系你的主机商询问主机开启了C_TYPE没有, 或者你可以查看你的php info里的ctype functions. 这个一般都是开启了的, 所以不必太担心.
现在让我们来了解了解开发阶段中得G2VALID提供了什么功能使用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
Checks
foremptyinput
| isEmpty($param)
| (@param|String:custom error message)
Checks
forvalid
email
| validEmail($param)
| (@param|String:custom error message)
Checks
forvalid
URL according
tohttp://www.faqs.org/rfcs/rfc2396
| validURL($param)
| (@param|String:custom error message)
Checks
ifthe$fieldisthe same
asthe
instace field(used
forpassword
field matching)
| isSame($field,$error)
| (@$field |String:field
tobe
compared with) |
(@error
|String:custom
error message)
|
Ex Use:->field(‘passwd‘)->isSame(‘passConfirm‘,‘Didnt Match‘);
Checks forvalid Ip Address
| validIP($param)
| (@param:custom error
message)
Check forMinimum Length ofastring
| minLength($min,$error)
| ($min
|int:the
minimum stringsize)
|
(@error
|String:custom
error message)
Check forMaximum Length ofastring
| maxLength($max,$error)
| ($max
|int:the
minimum stringsize)
| (@error |String:custom
error message)
Checks forA-Za-zandspace
| alpha($param) | (@param|String:custom error message)
Checks forA-Za-z0-9
| alphanumeric($param)
| (@param|String:custom error message)
Checks foran valid int
| isInt($param) | (@param|String:custom error message)
Checks foran valid float
| isFloat($param) | (@param|String:custom error message)
|
现在你大概了解了有哪些功能可以使用, 下面让我们来试试一个模拟表单数据提交.
1. 以数组形式返回一个字段的所有错误信息(@return array)
1
2
|
Validation :$instance->field(‘username‘)->isEmpty()->minLength(5)->maxLength(10);
Get Errors :$instance->>field(‘username‘)->getErrorsAsArray();
|
2. 返回一个字段的第一个错误信息(@return string)
返回一个字段的错误信息, 如果设置了多个验证规则, 则第一个发生的错误将会返回,
而且如果设置了getError(true)
,则会返回详细的错误信息及字段名称.
1
2
|
Validation :$instance->field(‘username‘)->isEmpty(‘Enter a
username‘);
Get Errors :$instance->>field(‘username‘)->getError();
|
3.以字符串形式返回一个字段的所有错误信息(@return string)
这会返回一个指定字段的所有错误信息, 如果设置了个多验证规则, 并且设置了getError(true), 则会返回字段名称及错误信息.
1
2
|
Validation :$instance->field(‘website‘)->isEmpty()->validURL();
Get Errors :$instance->>field(‘website‘)->getErrorAsString();
|
4.返回表单或者实体(instance)的所有错误信息(@return array)
这个方法对调试非常有用或者你想进阶用一些验证功能, 这会以数组形式返回所有实体的错误信息.
1
2
3
4
5
6
7
8
9
10
11
12
|
Validation
----------
$instance->field(‘website‘)->isEmpty(‘Web site is
required‘)->validURL(‘Enter Valid
Website‘);
$instance->field(‘username‘)->isEmpty(‘username is
required‘)->minLength(5)->maxLength(10);
$instance->field(‘email‘)->isEmpty(‘email is
required‘)->validEmail(‘Enter Valid
Email‘);
All
errors are
stored inthe objectit self
-----------------------------------------------------
$instance;
// To simply inspect, you can use
print_r($instance);
|
5.返回表单或者实体(instance)的所有错误信息(@return string)
如果你想一次性以字符串的形式返回表单的所有错误信息, 那么这将非常有用.
1
2
3
4
5
6
7
8
9
|
Validation
----------
$instance->field(‘website‘)->isEmpty()->validURL();
$instance->field(‘username‘)->isEmpty()->minLength(5)->maxLength(10);
$instance->field(‘email‘)->isEmpty()->validEmail();
All
errors of
instance asastringwith detaild reporting
------------------------------------------------------------------------
echo$instance->getErrorAsString(true);
|
现在, 我给表单的字段设置了自定义名称, 但是在某些情况下没有设置, 为了让用户更加明白发什么了什么, 你可以给一些没有特别说明的错误信息开启自动报错.
1
2
|
getErrorAsString(true);
getError(true);
|
结语
也许这篇文章的描述让你有点不知所云, 那么你可以直接去G2valid的项目网站地址看看演示demo就会明白https://github.com/dsginvilla/G2Valid#basic-demo