【问题标题】:what is the best from/email validation method in php? [closed]php中最好的来自/电子邮件验证方法是什么? [关闭]
【发布时间】:2016-08-04 14:05:46
【问题描述】:

我知道在 php 编程语言中有一种称为“PREG MATCH”的最佳方法。我想知道php中是否有其他方法进行验证?哪个是最好的?作为专业 php 开发人员,我采用什么方法?谢谢大家:)

【问题讨论】:

  • 没有“最好的”。它总是视情况而定。
  • 在我看来,最好的方法是 PHP 在内部为您提供的方法。请参阅filter_var() 的示例 #1。

标签: php validation email


【解决方案1】:

正如上面评论中提到的,这是情境性的。

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

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

你总是可以在没有框架的情况下使用 Symfony Validator 组件:https://symfony.com/doc/current/validation.html

【讨论】:

  • 是的,我喜欢这个答案。非常感谢您提供这些信息。我以前不知道“symfony 验证器组件”。谢谢你:)
【解决方案2】:

您无法通过查看电子邮件地址的格式来判断其是否有效。如果您尝试,您会犯一个错误,导致某些人即使使用有效的电子邮件地址也无法注册。

查找something@example.com 形式的地址很容易,但是something.something+else@foo.bar.baz.example.com 呢? something@example.money 或任何更新的顶级域呢?对于每个示例都可以列出不寻常的地址格式,有一千个我什至没有想到 - 你也没有。

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

如果您确实需要知道电子邮件地址是否有效,那么只有一种方法可以做到这一点:向其发送电子邮件,并让所有者回复(例如,通过单击链接)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    相关资源
    最近更新 更多