有没有一个用于电子邮件地址验证的PHP库?

20 浏览
0 Comments

有没有一个用于电子邮件地址验证的PHP库?

我需要验证用户的电子邮件地址。不幸的是,创建一个符合标准的验证器很困难。

这里有一个正则表达式的例子,试图符合标准。

有没有一个能够验证电子邮件地址的PHP库(最好是开源的)?

0
0 Comments

原因:

在上述内容中,作者提到了自己整理了关于电子邮件地址验证的所有信息,并提供了一个网站链接(http://isemail.info)来验证和诊断电子邮件地址的问题。还有他整理了来自不同人的测试用例,并对这些测试用例进行了测试。然后,还有其他人提到的一些库,并询问是否可以包括在比较中。

解决方法:

为了解决电子邮件地址验证的问题,作者提供了一个网站链接(http://isemail.info),可以用来验证和诊断电子邮件地址的问题。此外,作者还整理了来自不同人的测试用例,并将这些测试用例应用于各种验证器。还有其他人提到的一些库,并询问是否可以包括在比较中。

文章:

近期,我整理了关于电子邮件地址验证的所有信息,并创建了一个网站链接(http://isemail.info)来验证和诊断电子邮件地址的问题。这个链接不仅可以验证电子邮件地址,还可以诊断电子邮件地址的问题。对于电子邮件地址验证来说,我同意许多评论中提到的验证只是答案的一部分。关于这个问题,我在网站上写了一篇文章(http://isemail.info/about)。

我已经整理了来自Cal Henderson,Dave Child,Phil Haack,Doug Lovell和RFC 3696的测试用例。总共有158个测试地址。

我将这些测试用例应用于我能找到的所有验证器。比较结果可以在这里找到(http://www.dominicsayers.com/isemail)。

我会尽量保持这个页面的最新状态,以便人们改进他们的验证器。感谢Cal,Dave和Phil在编写这些测试用例和对我自己的验证器(http://code.google.com/p/isemail/source/browse/trunk/is_email.php)提出的建设性批评方面的帮助和合作。

人们应该注意特别注意RFC 3696的勘误。事实上,其中三个典型示例是无效的地址。而一个地址的最大长度是254或256个字符,而不是320个字符。

感谢您的工作,拥有真实的数据可以使用,而不仅仅是猜测。您是否还可以包括本页提到的其他库?

0
0 Comments

在PHP中有一个用于验证电子邮件地址的库吗?

电子邮件地址验证一直是一个具有挑战性的任务,因为电子邮件地址的格式非常灵活,很难用一个正则表达式来覆盖所有可能的情况。即使是简单的电子邮件地址,也有可能被一些过时的正则表达式所拒绝,比如拒绝使用大写字母或拒绝超过4个字母的顶级域名。

因此,一种常见的方法是简化验证过程,只检查是否存在@符号以及@符号前后是否有其他内容。这样可以捕捉到大多数用户输入错误,比如空字段或者用户使用用户名而不是电子邮件地址。

但是这种简化的验证方法无法捕捉到用户故意提供错误地址的情况,因为用户可以输入看起来随机但格式正确的地址。而且,这种方法也无法捕捉到用户可能犯的拼写错误。

如果确实需要对电子邮件地址进行完全的RFC验证,可以使用正则表达式来分割@符号周围的字符串,并分别检查本地名称和域名。对于本地名称以"开头的情况,可以单独处理,对于域名以[开头的情况,也可以单独处理。将问题分解为更小的特定领域,并仅在定义明确、较简单的情况下使用正则表达式。

当然,这种建议也可以应用于许多其他正则表达式的用法。

然而,在某些特定的情况下,我们可能需要验证电子邮件地址的有效性,而不仅仅是检查格式。另一种验证电子邮件地址的方法是要求用户输入两次电子邮件地址,但这种方法并不推荐。

有人问道,“为什么不使用双重输入?”事实上,如果用户像我一样,他们会将第一次输入的内容复制粘贴到第二次输入字段中,所以这种方法并没有任何好处。

在这种情况下,我们需要一种能够验证电子邮件地址是否有效的方法。如果确实需要验证电子邮件地址的格式有效性,Dominic提供的答案中包含了最全面的信息。

总结起来,验证电子邮件地址的方法有很多种,但是没有一种方法可以完全涵盖所有情况。在实际应用中,我们可以根据需求选择简化验证方法或使用正则表达式来进行更全面的验证。最终的选择取决于具体的业务需求和用户体验的权衡。

0
0 Comments

在编写一个简单的应用程序时,我需要一个基本的验证器。尽管PHP的filter_var函数并没有完全实现规范,但在我的经验中,它们的表现还是相当不错的。你可以使用以下示例代码来验证电子邮件地址(返回布尔值):

filter_var($someEmail, FILTER_VALIDATE_EMAIL);

这个函数可能不能通过一些在code.iamcal.com/php/rfc822/rfc822.phps网站上的测试,但对于我目前的需求来说,它已经足够好了。

有人在这个问题的回答中提到了PHP的filter_函数,这些函数虽然不完美,但在他的经验中表现相当不错。他提到了一个例子使用filter_var函数来验证电子邮件地址。虽然filter_var函数没有完全实现规范,但是对于他目前的需求来说已经足够好了。

0