为了账号安全,请及时绑定邮箱和手机立即绑定

是否有用于电子邮件地址验证的php库?

是否有用于电子邮件地址验证的php库?

PHP
qq_遁去的一_1 2019-09-03 19:17:41
我需要验证用户的电子邮件地址。不幸的是,制作符合标准的验证器很难以下是尝试符合标准的正则表达式的示例是否有任何验证电子邮件地址的PHP库(最好是开源)?
查看完整描述

3 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

你看过PHP的filter_函数了吗?他们并不完美,但根据我的经验他们做得相当不错。


用法示例(返回布尔值):


filter_var($someEmail, FILTER_VALIDATE_EMAIL);


查看完整回答
反对 回复 2019-09-03
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

AFAIK,验证电子邮件的唯一好方法是发送电子邮件,看看用户是否使用此电子邮件中的链接返回该站点。这就是许多网站所做的事情。


当你指出与着名的猛犸象正则表达式的链接时,验证所有形式的电子邮件地址很难,几乎不可能。这样做很容易做错,即使对于琐碎的电子邮件也是如此(我发现有太多网站拒绝在电子邮件地址中使用大写字母!而且大多数旧的正则表达式拒绝超过4个字母的TLD!)。


AFAIK,“Jean-Luc B. O'Grady”@ example.com和e = mc ^ 2 @ [82.128.45.117]都是有效地址......而I-Made-It-Up @ Absurd-Domain-Name。信息可能无效。


所以不知何故,我只会检查我们有什么东西,一个独特的@,别的东西,并继续它:它会捕获大多数用户错误(如空字段或用户名而不是电子邮件地址)。

如果用户想要提供虚假地址,那么它只会给出随机看起来正确的内容(see@on.tv或bill.gates@microsoft.com)。并且没有验证器会捕获拼写错误(jhon.b@example.com而不是john.b@example.com)。


如果真的想要针对完整的RFC验证电子邮件,我建议使用正则表达式来拆分@,然后单独检查本地名称和域名。单独的本地名称的情况以“从其他情况开始等等。以[从其他情况开始]分开的域名案例等。在较小的特定域中拆分问题,并且仅在明确定义的简单案例中使用正则表达式。

此建议可以适用于许多正则表达式用途,当然......


查看完整回答
反对 回复 2019-09-03
  • 3 回答
  • 0 关注
  • 454 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信