PHP验证邮箱的正确与有效性

前不久在国外一网站上看到Verify a User’s Email Address Using PHP,本来打算自己翻译过来顺便学习学习。原文意思即用PHP验证邮箱的正确与有效性。

  1. function validate_email($email){ 
  2.     $exp="^[a-z'0-9]+([._-][a-z'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$"
  3.     if(eregi($exp,$email)){ //先用正则表达式验证email格式的有效性 
  4.         if(checkdnsrr(array_pop(explode("@",$email)),"MX")){//再用checkdnsrr验证email的域名部分的有效性 
  5.             return true; 
  6.         }else
  7.             return false; 
  8.         } 
  9.     }else
  10.         return false; 
  11.     } 

注意:checkdnsrr函数在win主机上是无效的!下面是国外某程序员提出的一种解决办法,另外写了个函数代替checkdnsrr函数:

  1. function myCheckDNSRR($hostName$recType=''){ 
  2.     if(!empty($hostName)){ 
  3.         if$recType=='' ) $recType="MX"
  4.             exec("nslookup -type=$recType $hostName"$result); 
  5.         foreach($result as $line){ 
  6.             if(eregi("^$hostName",$line)){ 
  7.                 return true; 
  8.             } 
  9.         } 
  10.         return false; 
  11.     } 
  12.     return false; 

转载请注明:代码家园 » PHP验证邮箱的正确与有效性

也许你会喜欢和关注与本文内容高度相关的文章:

PHP用户注册邮箱验证激活帐号

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)