Miles' Blog

天涯何處無幹話,何必要講實務話

Zend_Validate

Zend_Validate 可以驗證輸入內容是否符合規則。

Zend 預設的驗證方法:

Class Name Description
Zend_Validate_EmailAddress 驗證 Email 規則
Zend_Validate_StringLength 字串長度

Usage

所有的驗證方法都會繼承 Zend_Validate_Interface。而這介面裡會有兩個方法: isValid() and getMessages()

此為官方的基本實作例子

$validator = new Zend_Validate_EmailAddress();

if ($validator->isValid($email)) {
// email appears to be valid
} else {
foreach ($validator->getMessages() as $messageId => $message) {
echo "Validation failure '$messageId': $message\n";
}
}

自定訊息有時需要取得原輸入的文字做說明,可以用 %value% 表示之。

$validator = new Zend_Validate_StringLength(array('min' => 8, 'max' => 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'
));

if (!$validator->isValid("test")) {
$messages = $validator->getMessages();
echo current($messages); // 這裡測過,使用 current 是可以正確地取到的
}

如果要取得判斷值的話,可能需要參考原 class 是否有提供。

0%