用于在php中进行电子邮件验证的filter_var或自定义函数

时间:2010-07-30 09:25:50

标签: php validation email

哪种解决方案更好,使用内置验证filter_var('email', FILTER_VALIDATE_EMAIL)或自定义函数?

谢谢!

5 个答案:

答案 0 :(得分:3)

自定义验证可让您更好地控制自己想要达到的目标。作为电子邮件地址的有效性和无效性比您想象的要复杂得多,而且大多数情况下,对此过于宽松比过于严格更好。毕竟,语法上有效的电子邮件地址并不能保证帐户实际存在,更不用说它正在被积极使用。有些东西,它必须包含一个@,@之后至少有一个点,@之前至少有一个字符,并且在大多数情况下都不是非法字符。

答案 1 :(得分:2)

电子邮件的过滤器var删除除字母数字!#$%&'*+-/=?^_`{|}~@.[]以外的所有字符。现在,您需要使用此过滤还是创建自定义解决方案。

这是一篇很好的文章:

Input Validation: Using filter_var() Over Regular Expressions

答案 2 :(得分:2)

对于大多数应用程序,PHP的filter_var可能会令人满意,但如果您想比较性能和有效性,请查看此站点http://www.linuxjournal.com/article/9585以了解RFC 2822合规性的含义。

答案 3 :(得分:1)

欢迎您使用我的免费PHP函数is_email()来验证地址。它可用here

它将确保地址完全符合RFC 5321。它还可以选择检查域是否确实存在。

您不应该依赖验证器来告诉您用户的电子邮件地址是否确实存在:某些ISP会向其用户提供不合规的地址,尤其是在不使用拉丁字母的国家/地区。更多关于电子邮件验证的文章:http://isemail.info/about

答案 4 :(得分:0)

我在谷歌搜索时找到了这个, 希望这能更好地解释你

http://www.addedbytes.com/code/email-address-validation/