2010-09-19 117 views
0

由于erigi()在PHP 5中已弃用,我需要验证电子邮件ID,因此应该使用哪个函数...?进一步请给电子邮件验证,如格式:PHP erigi:贬值(电子邮件验证)

<?php 
function checkEmail($email) 
{ 
    if(eregi("^[a-zA-Z0-9_][email protected][a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email)) 
    { 
     return FALSE; 
    } 

    list($Username, $Domain) = split("@",$email); 

    if(getmxrr($Domain, $MXHost)) 
    { 
     return TRUE; 
    } 
    else 
    { 
     if(fsockopen($Domain, 25, $errno, $errstr, 30)) 
     { 
     return TRUE; 
     } 
     else 
     { 
     return FALSE; 
     } 
    } 
} 
?> 

回答

2

使用filter_var PHP函数:

if (filter_var($email, FILTER_VALIDATE_EMAIL)) { 

} 

,或者甚至更好的是,使用RFC-compliant email address validator.由于没有正则表达式的金额将包括所有有效的电子邮件,是可能的。

0

例如带过滤器扩展名。

<?php 
function is_valid_email($email) 
{ 
    return filter_var($email, FILTER_VALIDATE_EMAIL) !== false; 
} 

var_dump(is_valid_email('[email protected]')); 
var_dump(is_valid_email('foobar')); 
var_dump(is_valid_email('[email protected]')); 

[~]> php x.php 
bool(true) 
bool(false) 
bool(true) 

这样你就可以结合你已有的进一步验证。