2011-03-23 55 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) 

你仍然会得到假阴性(也有很多有效的电子邮件,你从来没有想象的),但它仍然不是一个贫穷的正则表达式更好。

相关问题