Heim  >  Artikel  >  php教程  >  PHP 验证Email的函数

PHP 验证Email的函数

PHP中文网
PHP中文网Original
2016-05-25 17:13:401322Durchsuche

PHP 验证Email的函数 

<?php
 
function validateEmail($email)
{
   $isValid = true;
   $atIndex = strrpos($email, "@");
   if (is_bool($atIndex) && !$atIndex)
   {
      $isValid = false;
   }
   else
   {
      $domain = substr($email, $atIndex+1);
      $local = substr($email, 0, $atIndex);
      $localLen = strlen($local);
      $domainLen = strlen($domain);
      if ($localLen < 1 || $localLen > 64)
      {
         // local part length exceeded
         $isValid = false;
      }
      else if ($domainLen < 1 || $domainLen > 255)
      {
         // domain part length exceeded
         $isValid = false;
      }
      else if ($local[0] == &#39;.&#39; || $local[$localLen-1] == &#39;.&#39;)
      {
         // local part starts or ends with &#39;.&#39;
         $isValid = false;
      }
      else if (preg_match(&#39;/\\.\\./&#39;, $local))
      {
         // local part has two consecutive dots
         $isValid = false;
      }
      else if (!preg_match(&#39;/^[A-Za-z0-9\\-\\.]+$/&#39;, $domain))
      {
         // character not valid in domain part
         $isValid = false;
      }
      else if (preg_match(&#39;/\\.\\./&#39;, $domain))
      {
         // domain part has two consecutive dots
         $isValid = false;
      }
      else if
(!preg_match(&#39;/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\&#39;*+?^{}|~.-])+$/&#39;,
                 str_replace("\\\\","",$local)))
      {
         // character not valid in local part unless 
         // local part is quoted
         if (!preg_match(&#39;/^"(\\\\"|[^"])+"$/&#39;,
             str_replace("\\\\","",$local)))
         {
            $isValid = false;
         }
      }
      if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")))
      {
         // domain not found in DNS
         $isValid = false;
      }
   }
   return $isValid;
}
 
?>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn