Zend Framework校验器Zend_Validate用法详解
本文实例讲述了zend framework校验器zend_validate用法。分享给大家供大家参考,具体如下:
引言:
是对输入内容进行检查,并生成一个布尔结果来表明内容是否被成功校验的机制。
如果isvalid()方法返回false,子类的getmessage()方法将返回一个消息数组来解释校验失败的原因。
为了正确地返回消息与错误内容,对于isvalid()方法的每次调用,都需要清除前一个isvalid()方法调用所导致的消息和错误。
案例:
<?php require_once 'zend/validate/emailaddress.php'; function c_email($email) { $validator = new zend_validate_emailaddress(); if($validator->isvalid($email)){ echo "输入的e-mail地址:"; echo $email."有效!<p>"; }else{ echo "输入的e-mail地址:"; echo $email."无效!"; echo "失败消息为:<p>"; foreach($validator->getmessages() as $message){ echo $message."<p>"; } foreach($validator->geterrors() as $error){ echo $error."<p>"; } } } $e_m1 = "abc@123.com"; $e_m2 = "abc#123.com"; c_email($e_m1); c_email($e_m2);
结果:
输入的e-mail地址:abc@123.com有效!
输入的e-mail地址:abc#123.com无效!失败消息为:
'abc#123.com' is not a valid email address in the basic format local-part@hostname
emailaddressinvalidformat
说明:
在引入类之后,定义一个验证函数,在函数中实例化类。用isvalid()方法来进行验证,不同的子类验证器验证的内容是不一样的。
同时通过getmessages()方法和geterrors()方法来。
源码赏析:
public function isvalid($value) { if (!is_string($value)) { $this->_error(self::invalid); return false; } $matches = array(); $length = true; $this->_setvalue($value); // split email address up and disallow '..' if ((strpos($value, '..') !== false) or (!preg_match('/^(.+)@([^@]+)$/', $value, $matches))) { $this->_error(self::invalid_format); return false; } $this->_localpart = $matches[1]; $this->_hostname = $matches[2]; if ((strlen($this->_localpart) > 64) || (strlen($this->_hostname) > 255)) { $length = false; $this->_error(self::length_exceeded); } // match hostname part if ($this->_options['domain']) { $hostname = $this->_validatehostnamepart(); } $local = $this->_validatelocalpart(); // if both parts valid, return true if ($local && $length) { if (($this->_options['domain'] && $hostname) || !$this->_options['domain']) { return true; } } return false; }
解析:
这是主要的验证函数内容,分成了多种情况进行验证,有是否字符串,有是否符合邮箱规则,有长度是否符合,最终都符合才返回true。
更多关于zend相关内容感兴趣的读者可查看本站专题:《zend framework框架入门教程》、《php优秀开发框架总结》、《yii框架入门及常用技巧总结》、《thinkphp入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于zend framework框架的php程序设计有所帮助。
推荐阅读
-
Zend Framework教程之Application用法实例详解
-
Zend Framework入门教程之Zend_Registry组件用法详解
-
Zend Framework入门教程之Zend_Config组件用法详解
-
Zend Framework常用校验器详解
-
Zend Framework校验器Zend_Validate用法详解
-
Zend Framework教程之Loader以及PluginLoader用法详解
-
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
-
Zend Framework教程之Autoloading用法详解
-
Zend Framework教程之资源(Resources)用法实例详解
-
Zend Framework教程之前端控制器Zend_Controller_Front用法详解