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

PHP 投稿 11100 0 评论

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

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


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

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


function myCheckDNSRR($hostName, $recType=''){
	if(!empty($hostName)){
		if( $recType=='' ) $recType="MX";
			exec("nslookup -type=$recType $hostName", $result);
		foreach($result as $line){
			if(eregi("^$hostName",$line)){
				return true;
			}
		}
		return false;
	}
	return false;
}

编程笔记 » PHP验证邮箱的正确与有效性

赞同 (64) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽