2011-03-23 50 views
1

請使用eregi()函數來驗證電子郵件地址,我得到這個錯誤時:不推薦使用:函數eregi()的支持在C: WAMP

Deprecated: Function eregi() is deprecated in C:\wamp\www\ssiphone\classes\TraitementFormulaireContact.php on line 13 

我的代碼,這可能使問題是:

public function verifierMail($mail) 
{ 
    if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $mail)) { 
     return "valid mail"; 
    } 
    else { 
     return "invalid mail"; 
    } 
} 
+1

您的正則表達式無效。使用['filter_Var()'函數](http://pl.php.net/manual/en/function.filter-var.php) - 編寫自己的表達式更容易。 – Crozin 2011-03-23 17:27:31

回答

3

eregi功能已被棄用,這意味着在PHP的未來版本將被刪除。

您可以使用功能preg_match替換它,它幾乎完全相同。

示例代碼(未經測試):

public function verifierMail($mail) 
{ 
if(preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $mail)) { 
    return "valid mail"; 
} 
else { 
    echo "invalid mail"; 
} 

的/我使其不區分大小寫

+0

非常感謝:) – Malloc 2011-03-23 17:38:03

1

除了用ereg_*代替preg_*,你應該考慮bui平Ltin filter_var()功能:

filter_var($mail, FILTER_VALIDATE_EMAIL) 

你仍然會得到假陰性(也有很多有效的電子郵件,你從來沒有想象的),但它仍然不是一個貧窮的正則表達式更好。

相關問題