哪种解决方案更好,使用内置验证filter_var('email', FILTER_VALIDATE_EMAIL)
或自定义函数?
谢谢!
答案 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)
我在谷歌搜索时找到了这个, 希望这能更好地解释你