如何编写无效电子邮件地址的基本检查

时间:2012-12-10 00:50:44

标签: php

  

可能重复:
  How to validate an email address in PHP

下面我有一段代码,用于检查有效的电子邮件地址:

if ( (strlen($getemail) >= 7) && (strstr($getemail, "@")) && (strstr($getemail, ".")) ){

但我的问题是,上面代码的反面是什么,以便我可以检查输入的电子邮件是否包含上述所有功能?

3 个答案:

答案 0 :(得分:3)

PHP已经有一个可以为你做这个的功能。它被称为filter_var,你要找的是FILTER_VALIDATE_EMAIL的{​​{3}}。

示例:

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // It's a valid email address
} else {
    // It's not a valid email address
}

答案 1 :(得分:2)

在我看来,你想做的是RegEx。

var_dump(preg_match('#^(\w+){7,}@(\w+)\.([a-z]){2,4}$#i', 'example@example.com')); # 1 (true)
var_dump(preg_match('#^(\w+){7,}@(\w+)\.([a-z]){2,4}$#i', 'foo@example.com')); # 0 (false)

如果不满足其中一个条件(确保地址是字母数字,最少7个字符,后跟@等),整个表达式将导致错误值。

示例:

if(preg_match('#^(\w+){7,}@(\w+)\.([a-z]){2,4}$#i', $email))
{
// do stuff
}

不要验证此类电子邮件,请使用内置filter_var功能。没有真正的方法可以验证电子邮件是否“真实”,主要问题是域名,TLD是什么。

答案 2 :(得分:0)

if (!( (strlen($getemail) >= 7) && (strstr($getemail, "@")) && (strstr($getemail, ".")) )){