千家信息网

Zend Framework常用校验器的示例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家分享的是有关Zend Framework常用校验器的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:Date日期校验器代码:
千家信息网最后更新 2026年10月31日Zend Framework常用校验器的示例分析

这篇文章给大家分享的是有关Zend Framework常用校验器的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体如下:

Date日期校验器

代码:

isValid($date)){    echo "输入的日期格式:";    echo $date."有效!

"; }else{ echo "输入的日期格式:"; echo $date."无效!

"; }}$date1 = "2008-02-15";$date2 = "2008-02-31";$date3 = "02-15-2008";c_date($date1);c_date($date2);c_date($date3);

结果:

输入的日期格式:2008-02-15有效!

输入的日期格式:2008-02-31无效!

输入的日期格式:02-15-2008无效!

点评:源码解析

public function isValid($value){    if (!is_string($value) && !is_int($value) && !is_float($value) &&      !is_array($value) && !($value instanceof Zend_Date)) {      $this->_error(self::INVALID);      return false;    }    $this->_setValue($value);    if (($this->_format !== null) || ($this->_locale !== null) || is_array($value) ||       $value instanceof Zend_Date) {      require_once 'Zend/Date.php';      if (!Zend_Date::isDate($value, $this->_format, $this->_locale)) {        if ($this->_checkFormat($value) === false) {          $this->_error(self::FALSEFORMAT);        } else {          $this->_error(self::INVALID_DATE);        }        return false;      }    } else {      if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $value)) {        $this->_format = 'yyyy-MM-dd';        $this->_error(self::FALSEFORMAT);        $this->_format = null;        return false;      }      list($year, $month, $day) = sscanf($value, '%d-%d-%d');      if (!checkdate($month, $day, $year)) {        $this->_error(self::INVALID_DATE);        return false;      }    }    return true;}

InArray数组包含校验器

如果内容包含在数组中将返回True,否则返回False。

代码:

isValid($n)){    echo "指定的内容:";    echo $n.",存在于指定数组中!

"; }else{ echo "指定的内容:"; echo $n.",不存在于指定数组中!

"; }}$city1 = "北京";$city2 = "重庆";$city3 = "郑州";c_array($city1);c_array($city2);c_array($city3);

结果:

指定的内容:北京,存在于指定数组中!

指定的内容:重庆,存在于指定数组中!

指定的内容:郑州,不存在于指定数组中!

Regex正则匹配校验器

通过使用正则表达式,再加上合理使用本校验器,几乎可以实现所有的校验规则。

代码:

指定的内容:";    echo $v."

符合定义的正规规则!"; echo "

"; }else{ echo "指定的内容:"; echo $v."

不符合定义的正规规则!"; echo "

"; }}$temp1 = "ab";$temp2 = "abb";$temp3 = "abbb";c_rege($temp1);c_rege($temp2);c_rege($temp3);

结果:

指定的内容:ab

不符合定义的正规规则!

指定的内容:abb

符合定义的正规规则!

指定的内容:abbb

符合定义的正规规则!

点评:

public function __construct($pattern){    if ($pattern instanceof Zend_Config) {      $pattern = $pattern->toArray();    }    if (is_array($pattern)) {      if (array_key_exists('pattern', $pattern)) {        $pattern = $pattern['pattern'];      } else {        require_once 'Zend/Validate/Exception.php';        throw new Zend_Validate_Exception("Missing option 'pattern'");      }    }    $this->setPattern($pattern);}

构造函数初始化私有属性,

public function isValid($value){    if (!is_string($value) && !is_int($value) && !is_float($value)) {      $this->_error(self::INVALID);      return false;    }    $this->_setValue($value);    $status = @preg_match($this->_pattern, $value);    if (false === $status) {      $this->_error(self::ERROROUS);      return false;    }    if (!$status) {      $this->_error(self::NOT_MATCH);      return false;    }    return true;}

进行验证工作。

自定义校验器编写

继承Zend_Validate_Interface接口实现用户自定义校验器。

代码案例,功能判断指定数值是否为3的倍数。

接口代码:

要实现其中的两个方法,一个是isValid(),一个是getMessages()

实现代码:

_messages = array();    $requirement = !($value%3);    if(!$requirement){      $this->_messages[] = "'$value'不能被3整除";      return false;    }    return true;  }  public function getMessages(){    return $this->_messages;  }}function c_n_3($n){  $validator = new MyValidator();  if($validator->isValid($n)){    echo "指定的数值:";    echo $n.",是3的倍数!

"; }else{ echo "指定的数值:"; echo $n.",不是3的倍数!

"; echo "失败的消息为:

"; foreach ($validator->getMessages() as $message) { echo "$message

"; } }}$num1 = 5;$num2 = 6;$num3 = 8;c_n_3($num1);c_n_3($num2);c_n_3($num3);

结果:

指定的数值:5,不是3的倍数!

失败的消息为:

'5'不能被3整除

指定的数值:6,是3的倍数!

指定的数值:8,不是3的倍数!

失败的消息为:

'8'不能被3整除

点评:

这里通过isValid()方法来设置属性信息,通过getMessages()方法来获取错误消息。错误消息是一个数组,通过foreach()方法来遍历读取。

感谢各位的阅读!关于"Zend Framework常用校验器的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

内容 校验器 数组 代码 倍数 数值 日期 规则 正规 格式 消息 输入 方法 结果 常用 示例 分析 有效 属性 接口 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 互联网最新的科技有限公司 智网互联网科技 上海喔噻互联网科技 互联网科技公司有哪些 互联网科技视频素材 现代科技和互联网有关系吗 互联网科技产品 现代互联网科技股 全球顶尖互联网科技公司 成都铂石互联网科技做什么的 岳阳华臻互联网科技有限公司 花神(南京)互联网科技有限公司 晓花互联网科技有限公司网址 米聚互联网科技南京有限公司排面 互联网科技和法律行业 深圳艾果互联网通讯科技 保险科技服务互联网营销体系 长沙渺峰互联网科技有限公司 互联网科技创业计划的风险分析 北京禾田雨橡互联网科技 新华互联网科技校企合作 上海电发互联网科技有限公司 互联网科技寓意 燊美集互联网科技有限公司 深圳市罗太互联网科技有限公司 广东工业互联网大赛深圳学泰科技 梅州GM互联网络科技有限公司 图游互联网科技 江苏互联网智能科技产品出厂价
0