简介Zend_Validate 组件提供一组通用的校验器。它也提供了一个简单的校验器链机制,即在用户定义的顺序下,多个校验器可以被用于单个的数据。 什么是校验器(validator)?校验器根据要求检查它的输入并产生一个布尔结果--是否输入被成功校验。如果输入不符合要求,校验器另外地提供信息来说明输入不符合要求。 例如,一个 web 应用可能要求一个用户名的长度在6 到12个字符并可能只包含数字和文字。一个校验器可以被用来确保用户名符合要求。如果一个用户名不符合一个或者全部两个要求,知道它到底不符合哪个要求将非常有用。 校验器的基本用法
用这种方法定义校验为
如果
下面的例子示例一个e-mail地址的校验: <?php require_once 'Zend/Validate/EmailAddress.php'; $validator = new Zend_Validate_EmailAddress(); if ($validator->isValid($email)) { // email 有效 } else { // email 无效; 打印原因 foreach ($validator->getMessages() as $messageID => $message) { echo "Validation failure '$messageID': $message\n"; } } 定制消息
校验类提供了一个
第二个可选的参数是一个字符串,它识别是否校验失败消息模板被设置,当校验类定义了多于一个失败的原因的时候,这很有用。如果你忽略第二个参数,
<?php require_once 'Zend/Validate/StringLength.php'; $validator = new Zend_Validate_StringLength(8); $validator->setMessage( 'The string \'%value%\' is too short; it must be at least %min% characters', Zend_Validate_StringLength::TOO_SHORT); if (!$validator->isValid('word')) { $messages = $validator->getMessages(); echo $current($messages); // echoes "The string 'word' is too short; it must be at least 8 characters" }
你可以用 <?php require_once 'Zend/Validate/StringLength.php'; $validator = new Zend_Validate_StringLength(8, 12); $validator->setMessages( array( Zend_Validate_StringLength::TOO_SHORT => 'The string \'%value%\' is too short', Zend_Validate_StringLength::TOO_LONG => 'The string \'%value%\' is too long' ));
如果你的应用程序要求更灵活的校验失败报告,你可以访问和消息令牌同名的属性,这个消息令牌由给定的校验类支持。 <?php require_once 'Zend/Validate/StringLength.php'; $validator = new Zend_Validate_StringLength(8, 12); if (!validator->isValid('word')) { echo 'Word failed: ' . $validator->value . '; its length is not between ' . $validator->min . ' and ' . $validator->max . "\n"; } 使用静态 |
Zend_Validate |