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

PHP
1966
20
2015-04-14

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

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

filter_var

不得不说,这个函数其实我也是今天才见到。在 PHP 5.2 以上版本才有,不过现在至少都 5.4 了吧。 ```php if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { // invalid emailaddress } ``` 这个代码只能检测邮箱地址是否有效,如果我想检测是否存在这个邮箱呢?

办法是有的。

checkdnsrr

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

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

if (!checkdnsrr($domain, 'MX')) {
// domain is not valid
}
昵称
邮箱
网址
mokeyjay的头像 2015-05-06 00:14

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

联署营销的头像 2016-03-02 05:33

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

搞笑图片的头像 2015-10-24 00:00

太厉害啦!值得我们学习

大外 大外的头像 2015-06-16 16:44
大外 大外

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

mokeyjay的头像 2015-06-16 16:50
mokeyjay 博主

的确如此,谢谢

菠萝格格的头像 2015-05-05 23:28

我觉得很有必要记录下你的网站 于是。。。http://www.daquan8.com/wordpress/36.html

mokeyjay的头像 2015-05-06 00:04

mb_org.gif 感动不已

Chriser的头像 2015-05-03 19:49

纳兰泽雨的头像 2015-04-23 23:54

checkdnsrr 还要执行一次 DNS 查询,不是很喜欢
话说现在还有人用 PHP5.2 做生产环境呢,感觉 PHP5.3 是各种虚拟主机的主流,php.net 也还对 5.3 进行支持
不过我前几天把 PHP5.3 升级到 PHP5.5 了 =A=

mokeyjay的头像 2015-04-24 00:27
mokeyjay 博主

这几天公司有个项目要求ecshop二次开发,而ecshop的最佳兼容环境是5.2...

纳兰泽雨的头像 2015-04-24 11:27

于是你就用了php5.2 = =

mokeyjay的头像 2015-04-24 15:31
mokeyjay 博主

用了AnmpServer...国产能切换PHP版本的绿色集成开发环境,用了一段时间感觉比xampp顺手多了,安利一下

纳兰泽雨的头像 2015-04-24 16:30

稳定么。。。Windows下的Apache和Nginx性能都不咋地,再加上ecshop那性能。。。

mokeyjay的头像 2015-04-25 12:16
mokeyjay 博主

啊啊本地环境而已,线上环境我就不清楚了

纳兰泽雨的头像 2015-04-25 14:55

你安利成功了= =我已经下了这个软件

mokeyjay的头像 2015-04-26 19:41
mokeyjay 博主

确实是不错嘛,作者为人也很随和很热心

吟梦的头像 2015-04-21 21:12

马,以后可能写的时候也会用到

夜绫千裕的头像 2015-04-18 12:37

Crayon Syntax Highlighter

高端大气上档次的选择

mokeyjay的头像 2015-04-18 14:16
mokeyjay 博主

最早我见过的也是这款,不过看了http://zhangge.net/1107.html之后吓尿了就没用过了

夜绫千裕的头像 2015-04-18 19:20

反正我用是没啥问题