带有preg_match的有效电子邮件

时间:2012-09-21 08:37:32

标签: php preg-match

我使用preg_match()验证电子邮件地址时遇到问题。

这是我的代码块。

if (VerifierAdresseMail($email))
  echo '<p>valide.</p>';
else
  echo '<p>not valid</p>';


  function VerifierAdresseMail($adresse) {
    $Syntaxe = '#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
    if (preg_match($Syntaxe, $adresse))
      return true;
    else
      return false;
  }

这似乎不起作用。它只是返回一个白页。在我的application.ini

中,我无法看到错误
[developpement : production]


phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.track_errors = 1
phpSettings.error_reporting = E_ALL

resources.frontController.params.displayExceptions = 1

phpSettings.date.timezone = "Europe/Paris"

感谢您的帮助

2 个答案:

答案 0 :(得分:20)

请勿使用preg_match()来验证电子邮件地址。请改用filter_var()

if (filter_var($adresse, FILTER_VALIDATE_EMAIL)) {
     // valid
} else {
     // not valid
}

答案 1 :(得分:2)

我认为你应该使用它:

filter_var('e-mail@provider.com', FILTER_VALIDATE_EMAIL);

返回过滤后的数据,如果过滤器失败,则返回FALSE。

doc:http://php.net/manual/en/function.filter-var.php