ZendFramework学习第三章(核心组件—校验器之预定义校验器)
和过滤器类似,系统也预定义了一些校验器。如下表:
名称
效验内容
名称
效验内容
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);
运行结果:
输入的内容:北京在指定数组中!
输入的内容:重庆不在指定数组中!
输入的内容:台湾在指定数组中!
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 就卡死,拔了两次电源, 好了今天先到这吧,正好该下班了。祝大家有个性福的夜晚。
读书破万卷,下笔如有神。——杜甫