3

我在使用 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"

谢谢你的帮助

4

2 回答 2

21

不要preg_match()用于验证电子邮件地址。改用filter_var()

if (filter_var($adresse, FILTER_VALIDATE_EMAIL)) {
     // valid
} else {
     // not valid
}
于 2012-09-21T08:42:04.787 回答
3

我认为你应该使用这个:

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

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

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

于 2012-09-21T08:43:23.820 回答