溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Zend_Validate如何在Zend Framework中使用

發(fā)布時間:2021-04-01 17:06:27 來源:億速云 閱讀:146 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)Zend_Validate如何在Zend Framework中使用,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

是對輸入內(nèi)容進行檢查,并生成一個布爾結(jié)果來表明內(nèi)容是否被成功校驗的機制。

如果isValid()方法返回False,子類的getMessage()方法將返回一個消息數(shù)組來解釋校驗失敗的原因。

為了正確地返回消息與錯誤內(nèi)容,對于isValid()方法的每次調(diào)用,都需要清除前一個isValid()方法調(diào)用所導(dǎo)致的消息和錯誤。

案例:

<?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);

結(jié)果:

輸入的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

說明:

在引入類之后,定義一個驗證函數(shù),在函數(shù)中實例化類。用isValid()方法來進行驗證,不同的子類驗證器驗證的內(nèi)容是不一樣的。
同時通過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;
}

以上就是Zend_Validate如何在Zend Framework中使用,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI