[转]PHP判断一个字符串是否是有效的邮箱地址

原文:http://giuem.com/php-check-if-a-string-is-a-valid-email/

清明放假回家刚好有一点时间,于是开始写评论系统了。而我本身非常注重程序的安全性,所以自然是要对所有的输入进行检查。做到邮箱检查时,本来想使用正则来判断,但感到非常不优雅,就上 Google 查了些资料。

filter_var

不得不说,这个函数其实我也是今天才见到。在 PHP 5.2 以上版本才有,不过现在至少都 5.4 了吧。

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
// invalid emailaddress
}

这个代码只能检测邮箱地址是否有效,如果我想检测是否存在这个邮箱呢?

办法是有的。

checkdnsrr

checkdnsrr 函数可以检测主机的DNS,只要我们检测一下邮箱对应的域名是否有 MX 记录,就能知道这个邮箱是否真实存在了。

其中 domain 还需你自己从邮箱中取出来。

if (!checkdnsrr($domain, 'MX')) {
// domain is not valid
}

23 条评论

昵称
  1. 联署营销

    [bofu蹦极] 谢谢分享,收藏备用啊

  2. 搞笑图片

    太厉害啦!值得我们学习

  3. 大外 大外

    做程序员 真的很辛苦啊 小心你的颈椎

    1. mokeyjay

      的确如此,谢谢

  4. mokeyjay

    最近转向Web开发这边了,毕业工作比较忙,但依然有在坚持开发哟。最近在弄百度贴吧云签到