使用Pregmatch错误检查电子邮件是否有效?

pur*_*epk -1 php email

您好我想检查电子邮件是否有效,如blabla@blabla.com,而不仅仅是纯文本'BLbalbalba'.

我有这个功能:

function VerifyEmail($address) 
{
   $Syntax='#^[w.-]+@[w.-]+.[a-zA-Z]{2,5}$#';
   if(preg_match($Syntaxe,$adrdess))
      return true;
   else
     return false;
}
Run Code Online (Sandbox Code Playgroud)

并检查它像这样:

    $email = htmlentities($_POST['email']);
if (!empty($email) && !empty($password) && !empty($message) && VerifyEmail($email) === true) {
Run Code Online (Sandbox Code Playgroud)

得到这些错误:

Notice: Undefined variable: Syntaxe in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20

Notice: Undefined variable: adrdess in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20

Warning: preg_match() [function.preg-match]: Empty regular expression in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20

Notice: Undefined variable: Syntaxe in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20

Notice: Undefined variable: adrdess in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20

Warning: preg_match() [function.preg-match]: Empty regular expression in C:\xampp\htdocs\recover\inc\functions.inc.php on line 20
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我做错了什么?这是一种检查电子邮件是否有效的稳定方式吗?谢谢!

Mar*_*c B 5

不,它不是"稳定",它不是"有效",它不会做得很好.使用

filter_var($email, FILTER_VALIDATE_EMAIL)
Run Code Online (Sandbox Code Playgroud)

代替.相关文档:http://www.php.net/manual/en/function.filter-var.php