什么是最好从/电子邮件验证方法在PHP?

问题描述:

我知道有一种在php编程语言中称为“PREG MATCH”的最佳方法。我想知道是否有任何其他方法在PHP验证?哪个最好?我作为一名职业PHP开发人员练习什么方法?谢谢大家:)什么是最好从/电子邮件验证方法在PHP?

+0

没有“最好”。它总是情境化的。 – Quentin

+0

在我看来,最好的方法就是PHP在内部为您提供的一种方法。参见['filter_var()'](http://php.net/filter_var)的示例#1。 –

如前所述上面的评论,这是情境。

大多数PHP框架都有自己的电子邮件和其他类型数据的验证方法,但这些方法通常依赖于正则表达式(“PREG MATCH”)并执行额外的检查(如果域中有任何DNS条目,等等。)。

此外,PHP内置函数filter_var()http://php.net/manual/en/function.filter-var.php)。如果提供的字符串不是有效的电子邮件地址,它应该返回false,但不幸的是它并不总是可靠的。

您可以随时使用的Symfony验证程序组件无框架:https://symfony.com/doc/current/validation.html

+0

是的,我喜欢这个答复。非常感谢您提供这些信息。我以前不知道“symfony验证器组件”。谢谢 :) – KabZab

您不能通过查看其格式来确定电子邮件地址是否有效。如果你尝试,你犯了一个错误,使某些人无法注册,即使使用有效的电子邮件地址。

很容易找到形式为[email protected]的地址,但[email protected]呢?那么[email protected]或任何更新的顶级域名呢?对于每个例子都可以列出的不寻常的地址格式,有一千我甚至没有想过 - 你也不是。

你可以做一个简单的检查,如“这是否包含在某处的@?”如果你想快速排除某人输入他们的名字而不是他们的电子邮件地址,或者基本的“填写错误的盒子”类错误,但不要试图挑选整个地址是否有效。

如果你真的需要知道,如果电子邮件地址是有效的有一个且只有一个办法做到这一点:发送邮件到它,并有拥有者的(例如,通过单击链接)