您的位置:首页 > 编程语言 > PHP开发

ZendFramework学习第三章(核心组件—校验器之预定义校验器)

2012-08-30 17:27 549 查看
和过滤器类似,系统也预定义了一些校验器。如下表:

名称
效验内容
名称
效验内容
Alnum
内容是否为字母或者数字组合
Hex
数值是否为十六进制
Apha
内容是否为纯字母组合
Hostname
主机名是否正确
Between
数值是否位于指定的两个值之间
InArray
内容是否存在于指定数组中
Ccnum
数值是否为十进制数
Int
数值是否为整数
Date
日期格式是否正确
Ip
Ip地址是否有效
Digits
内容是否为数值
LessThan
数值是否比指定值小
EmailAddress
E-mail地址是否正确
NotEmpty
内容是否不为空
Float
数值是否为浮点数
Regex
是否匹配给定的正则表达式
GreaterThan
数值是否比指定值大
StringLength
字符串长度是否在某个区间
下边依照上边的表,举例说一些系统预定义校验器的使用。

Date日期校验器

使用校验器我就不阐述了,下边直接举例说明吧:

function c_date($date)

{

$validator=new Zend_Validate_Date();

if ($validator->isValid($date))

{

echo "输入的格式:";

echo $date."有效!<p>";

}

else

{

echo "输入的格式:";

echo $date."无效!<p>";

}

}

$date1="2008-02-22";

$date2="02-25-2005";

$date3="2008-02-58";

c_date($date1);

c_date($date2);

c_date($date3);



结果:

输入的格式:2008-02-22有效!

输入的格式:02-25-2005无效!

输入的格式:2008-02-58无效!

Hostname主机地址校验器

使用Zend_Validate_Hostname校验器还可以对给定的主机地址是否正确进行检测,返回布尔值。举例:

function c_hostname($h_n)

{

$validator=new Zend_Validate_Hostname();

if ($validator->isValid($h_n))

{

echo "输入的主机地址:";

echo $h_n."有效!<p>";

}

else

{

echo "输入的主机地址:";

echo $h_n."无效!<p>";

}

}

$host1="framework.zend.com";

$host2="microsoft";

$host3="127.0.0.1";

c_hostname($host1);

c_hostname($host2);

c_hostname($host3);

运行结果:

输入的主机地址:framework.zend.com有效!

输入的主机地址:microsoft无效!

输入的主机地址:127.0.0.1无效!

InArray数组包含校验器

使用Zend_Validate_InArray校验器可以对指定的内容是否包含在指定的数组中进行检测。

function c_inarray($n)

{

$temp=array("北京","上海","台湾","钓鱼岛"); //就拿中国领土举例吧!



$validator=new Zend_Validate_InArray($temp);

if ($validator->isValid($n))

{

echo "输入的内容:";

echo $n."在指定数组中!<p>";

}

else

{

echo "输入的内容:";

echo $n."不在指定数组中!<p>";

}

}

$China1="北京";

$China2="重庆";

$China3="台湾";

c_inarray($China1);

c_inarray($China2);

c_inarray($China3);

运行结果:

输入的内容:北京在指定数组中!

输入的内容:重庆不在指定数组中!

输入的内容:台湾在指定数组中!



Regex正则表达式匹配校验器
Zend_Validate_Regex是一类较为特殊的校验器,该校验器可以使用正则表达式(是定义一个用来搜索匹配字符串模式的特殊字符串)作为效验规则。通过使用证则表达式,再加上合理使用本校验器,几乎可以实现所有的效验规则。在初始化对象是需要以正则表达式字符串为参数。符合规则返回true,否则返回false。举例:

function c_rege($v)

{

$pattern=array("/ab{2,}/"); //该正则表示以字母a开头后边后面跟着2到多个b







if (Zend_Validate::is($v, 'Regex',$pattern))

{

echo "输入的内容:";

echo $v."符合正则规则!<p>";

}

else

{

echo "输入的内容:";

echo $v."不符合正则规则!<p>";

}

}



$regex1="ab";

$regex2="abb";

$regex3="abbb";

c_rege($regex1);

c_rege($regex2);

c_rege($regex3);

运行结果:

输入的内容:ab不符合正则规则!

输入的内容:abb符合正则规则!

输入的内容:abbb符合正则规则!

这篇文章写出来真心不容易,公司电脑卡的要死,一开Zend Studio 就卡死,拔了两次电源, 好了今天先到这吧,正好该下班了。祝大家有个性福的夜晚。

读书破万卷,下笔如有神。——杜甫
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐