在 PHP 中验证电子邮件地址 [重复]
Posted
技术标签:
【中文标题】在 PHP 中验证电子邮件地址 [重复]【英文标题】:Validate email address in PHP [duplicate] 【发布时间】:2011-05-28 12:17:12 【问题描述】:可能重复:How to validate an emailaddress in php
我想知道每个人在验证电子邮件地址方面都在做什么,以及验证需要多广泛。
例如,在这些方法中,首选哪一种?为什么?
-
全面检查:http://www.linuxjournal.com/article/9585?page=0,3
PHP 过滤器:http://php.net/manual/en/filter.filters.validate.php
艾瑞吉:http://www.totallyphp.co.uk/code/validate_an_email_address_using_regular_expressions.htm
预匹配与 DNS 检查:http://www.soaptray.com/blog/2008/04/validate-email-addresses-using-php/
我的目标是为普通项目找到一个好的、可靠的解决方案,因此在验证电子邮件地址时,我确切地知道我将要使用什么。
非常感谢任何反馈!
-瑞恩
【问题讨论】:
【参考方案1】:http://www.regular-expressions.info/email.html 具有 RFC2822 推荐的 reg ex。
【讨论】:
【参考方案2】:使用PHP’s build-in filters 进行语法验证并发送验证电子邮件以确认意图。
【讨论】:
【参考方案3】:这是一篇很棒的博客文章:http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
就个人而言,我通常使用一个简单的 RegExp 来验证您在 Internet 上找到的大多数地址,因此我会使用第三个链接中的解决方案。 但我认为,最好的解决方案是向指定地址发送一封电子邮件(之前使用简单的 RegExp 来警告用户),并附上一个链接来验证它。因此,您确定这是一个有效且已分配的地址。
【讨论】:
【参考方案4】:除了向该地址发送电子邮件并请求回复外,我认为没有万无一失的解决方案。正则表达式之类的东西很难正确地实现。
您的解决方案将取决于该电子邮件地址的价值。您要发送时事通讯吗?销售确认?严重警报?一些简单的正则表达式解决方案可能就足够了。获得某种确认对于第二个来说很有价值。第三个可能需要重复确认有效性(例如每月检查)。
【讨论】:
以上是关于在 PHP 中验证电子邮件地址 [重复]的主要内容,如果未能解决你的问题,请参考以下文章