第 33 章 Zend_Validate

目录

33.1. 简介
33.2. 校验器链
33.3. 写校验器
33.4. 校验 Email 地址
33.5. 校验主机名

33.1. 简介

Zend_Validate 组件提供一组通用的校验器。它也提供了一个简单的校验器链机制,即在用户定义的顺序下,多个校验器可以被用于单个的数据。

什么是校验器(validator)?

校验器根据要求检查它的输入并产生一个布尔结果--是否输入被成功校验。如果输入不符合要求,校验器另外地提供信息来说明输入不符合要求。

例如,一个 web 应用可能要求一个用户名的长度在6 到12个字符并只包含数字和文字。一个校验器可以被用来确保用户名符合要求。如果一个用户名不符合一个或者全部两个要求,知道它到底不符合哪个要求将非常有用。

用这种方法定义校验为Zend_Validate_Interface提供了基础,它定义了两个方法,isValid()getMessages()isValid()方法根据提供的值来校验,当且仅当这个值通过校验条件,它返回true。如果isValid()返回falsegetMessages() 返回一个信息数组来解释校验失败的原因。

[注意] 注意

getMessages() 只为最近的isValid()调用返回校验失败信息,因为 isValid() 清楚先前 isValid 调用的任何信息。

下面的例子示例一个e-mail地址的校验:

<?php
        
require_once 'Zend/Validate/EmailAddress.php';
$validator = new Zend_Validate_EmailAddress();
if ($validator->isValid($email)) {
    // email appears to be valid
} else {
    // email is invalid; print the reasons
    foreach ($validator->getMessages() as $message) {
        echo "$message\n";
    }
}

?>