Maison  >  Article  >  développement back-end  >  Analyse de l'utilisation du validateur Zend Framework Zend_Validate

Analyse de l'utilisation du validateur Zend Framework Zend_Validate

不言
不言original
2018-06-09 14:51:072399parcourir

Cet article présente principalement l'utilisation du validateur Zend Framework Zend_Validate, et analyse les fonctions, les compétences d'utilisation et les précautions associées du validateur Zend_Validate sous forme d'exemples. Les amis dans le besoin peuvent se référer aux exemples de cet article

<.> Décrit l'utilisation du validateur Zend Framework Zend_Validate. Partagez-le avec tout le monde pour votre référence, comme suit :

Introduction :

vérifie le contenu d'entrée et génère un résultat booléen pour indiquer si le contenu a été vérifié avec succès. mécanisme.

Si la méthode isValid() renvoie False, la méthode getMessage() de la sous-classe renverra un tableau de messages pour expliquer la raison de l'échec de la vérification.

Afin de renvoyer correctement le contenu du message et de l'erreur, pour chaque appel à la méthode isValid(), le message et l'erreur provoqués par l'appel précédent de la méthode isValid() doivent être effacés.

Cas :

<?php
require_once &#39;Zend/Validate/EmailAddress.php&#39;;
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);

Résultat :

Adresse e-mail renseignée : abc@123 . com ça marche ! L'adresse email saisie : abc#123.com n'est pas valide ! Le message d'échec est :
'abc#123.com' n'est pas une adresse e-mail valide au format de base local-part@hostname
emailAddressInvalidFormat

Description :

Après avoir introduit la classe, définissez une fonction de vérification et instanciez la classe dans la fonction. Utilisez la méthode isValid() pour vérifier. Différents validateurs de sous-classe vérifient différents contenus.

Utilisez en même temps la méthode getMessages() et la méthode getErrors().

Appréciation du code source :

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 &#39;..&#39;
    if ((strpos($value, &#39;..&#39;) !== false) or
      (!preg_match(&#39;/^(.+)@([^@]+)$/&#39;, $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[&#39;domain&#39;]) {
      $hostname = $this->_validateHostnamePart();
    }
    $local = $this->_validateLocalPart();
    // If both parts valid, return true
    if ($local && $length) {
      if (($this->_options[&#39;domain&#39;] && $hostname) || !$this->_options[&#39;domain&#39;]) {
        return true;
      }
    }
    return false;
}

Analyse :

C'est la vérification principale fonction Le contenu est divisé en plusieurs situations pour vérifier, notamment s'il s'agit d'une chaîne, si elle répond aux règles de la boîte aux lettres et si la longueur est cohérente. True ne sera renvoyé que lorsque tous sont cohérents.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Zend Analyse de l'utilisation du composant Zend_View dans Framework

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn