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教程之前端控制器Zend_Controller_Front用法详解
- Zend Framework动作控制器用法示例
- Zend Framework路由器用法实例详解
- Zend Framework分发器用法示例
- Zend Framework过滤器Zend_Filter用法详解
- Zend Framework实现自定义过滤器的方法
- Zend Framework常用校验器详解
- Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
- Zend Framework 2.0事件管理器(The EventManager)入门教程
- Zend Framework前端控制器用法示例
相关文章
Zend Framework教程之模型Model基本规则和使用方法
这篇文章主要介绍了Zend Framework教程之模型Model基本规则和使用方法,结合实例形式详细分析了Zend Framework中模型的原理与具体使用技巧,需要的朋友可以参考下2016-03-03
php使用file_get_contents(‘php://input‘)和$_POST的区别实例对比
这篇文章主要介绍了php使用file_get_contents(‘php://input‘)和$_POST的区别实例对比,这个知识点是比较常用的,有需要的可以参考下2021-03-03
Laravel Validator自定义错误返回提示消息并在前端展示
这篇文章主要给大家介绍了关于Laravel Validator自定义错误返回提示消息并在前端展示的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2019-05-05


最新评论