回答
自定义验证让你在你想要走多远,这个更多的控制。作为一个电子邮件地址,什么是和不是有效的,比你想象的要复杂得多,而且大多数情况下,最好过于宽松,而不是太严格。毕竟,一个语法上有效的电子邮件地址并不能保证该帐户实际存在,更不用说它正在被积极使用。类似的,它必须包含一个@,@之后至少一个点,@之前至少一个字符,以及任何非法字符都可能在大多数情况下足够好。
PHP不按官方的RFC无法验证电子邮件地址(我现在找不到这个权利作为参考,但它最近来到了这里)。即使“FILTER_VALIDATE_EMAIL”在大多数情况下可能都足够好,但我建议您不要这样做,并且可以使用符合RFC的检查程序,或者如您所说,轻松一点。 – deceze 2010-07-30 09:41:41
哦,在这里我们去:http://svn.php.net/repository/php/php-src/branches/PHP_5_3/ext/filter/logical_filters.c寻找在'php_filter_validate_email'正则表达式。它太短而无法完全符合RFC。 :) – deceze 2010-07-30 09:47:42
我的观点正好。符合RFC并不意味着它的存在和工作。另外,如果听说所有的邮件代理都符合RFC,我会感到惊讶。 – tdammers 2010-07-30 10:01:23
过滤器变种的电子邮件删除所有字符,除了字母,数字和!#$%&'*+-/=?^_`{|}[email protected][]
。现在取决于您是否想要使用此过滤或创建定制解决方案。
这里是对一个优秀的文章:
Input Validation: Using filter_var() Over Regular Expressions
* santizing *过滤器,但不是* validating *过滤器。如果没有进行消毒处理,“有效”电子邮件(根据过滤器)仍然可以包含上述以外的其他字符。 – salathe 2010-07-30 11:09:45
PHP的filter_var对于大多数应用程序来说可能是令人满意的,但如果您想比较性能和有效性,请查看此站点http://www.linuxjournal.com/article/9585以了解RFC 2822遵从性的含义。
我发现这个谷歌搜索时, 希望这解释了你更好
欢迎您使用我的免费PHP函数is_email()
验证地址。它可用here。
这将确保一个地址是完全RFC 5321标准。它可以选择性地检查域是否确实存在。
你不应该依赖验证告诉你用户的电子邮件地址是否真实存在:一些ISP给了不符合规定的地址给他们的用户,尤其是在不使用拉丁字母的国家。更多在我的文章关于电子邮件验证在这里:http://isemail.info/about。
- 1. 调用未定义的函数filter_var()
- 2. PHP或PHPUnit自定义函数
- 3. PHP的filter_var()函数生成警告
- 4. Aurelia:访问自定义元素的自定义函数或自定义属性
- 5. 在python中定义自定义函数
- 6. PHP自定义超全局函数
- 7. 添加自定义PHP函数XSL
- 8. OpenCart PHP自定义函数不工作
- 9. 自定义PHP函数HTTP错误500
- 10. 自定义PHP“爆炸”函数递归
- 11. PHP的filter_var FILTER_FLAG_ENCODE_HIGH
- 12. PHP - Filter_var替代?
- 13. PHP filter_var bug?
- 14. filter_var php问题
- 15. 自定义函数
- 16. PHP何时使用filter_var而不是内置的php函数
- 17. 如何使用filter_var()函数来验证电子邮件在PHP。
- 18. 在使用HHVM时,是否有替代php中的“filter_var”函数?
- 19. dalek回调函数或自定义函数
- 20. 使用自定义绑定,扩展器或自定义函数扩展敲击
- 21. PHP filter_var URL错误
- 22. PHP的filter_var功能
- 23. PHP filter_var()函数允许整数超过一个减
- 24. PHP函数 - 自定义字符串长度函数
- 25. 是否可以添加到filter_var()函数用户定义的参数?
- 26. 子或函数未定义
- 27. 自定义在PHP
- 28. 定义自定义GNU make函数
- 29. jQuery定义自定义函数
- 30. 定义和调用自定义函数
这取决于您的自定义功能;) – 2010-07-30 09:28:54
我用这一个:http://code.iamcal.com/php/rfc822/rfc822.phps的时刻。 – Alex 2010-07-30 09:54:54