2010-09-19 76 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) 

這樣你就可以結合你已有的進一步驗證。