当前位置: 首页 > 面试题库 >

如何在PHP中验证电子邮件?

须曜文
2023-03-14
问题内容

我如何使用php5验证输入值是有效的电子邮件地址。现在我正在使用此代码

function isValidEmail($email){ 
     $pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";

     if (eregi($pattern, $email)){ 
        return true; 
     } 
     else { 
        return false; 
     }    
}

但显示已弃用的错误。我该如何解决此问题。请帮我。


问题答案:

您可以使用该filter_var()功能,该功能为您提供了许多方便的验证和消毒选项。

filter_var($email, FILTER_VALIDATE_EMAIL)
  • PHP手册filter_var()

  • PHP > = 5.2.0中*可用 *

如果您不想更改依赖于函数的代码,请执行以下操作:

function isValidEmail($email){ 
    return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}

注意 :对于其他用途(需要Regex的地方),不赞成使用的ereg函数族(POSIX Regex
Functions)应替换为该preg族(PCRE Regex
Functions
)。差异很小,阅读本手册就足够了。

更新1 指出:

PHP
5.3.3和5.2.14有一个与FILTER_VALIDATE_EMAIL相关的错误,当验证大值时会导致segfault。在此strlen()
之前,使用简单安全的解决方法filter_var()。我不确定5.3.4最终版,但据信某些5.3.4快照版本也受到了影响。

该错误已得到修复。

更新2
:此方法当然会验证bazmega@kapa为有效的电子邮件地址,因为实际上它是有效的电子邮件地址。但是大多数时候,在Internet上,您还希望电子邮件地址具有TLDbazmega@kapa.com
in-php/5855853#comment18460128_5855853)发布的链接)所建议的那样,您可以filter_var()使用正则表达式进行扩充,该正则表达式将检查域部分中是否存在点(尽管不会检查_有效的_ TLD):

function isValidEmail($email) {
    return filter_var($email, FILTER_VALIDATE_EMAIL) 
        && preg_match('/@.+\./', $email);
}


 类似资料:
  • 每当我在Firebase中使用电子邮件/密码身份验证提供程序时,提供程序都会在成功注册时发送一个无记名令牌,即使是。是否有一种开箱即用的方法将电子邮件/密码身份验证提供程序配置为在用户验证其电子邮件地址之前不发送无记名令牌(并返回403错误)? 请注意,我知道如何创建用户、登录用户、发送验证电子邮件等。。。使用firebase v9。x通过firebase/auth中的方法创建用户(使用Email

  • 问题内容: 是否有正则表达式来验证JavaScript中的电子邮件地址? 问题答案: 使用正则表达式可能是最好的方法。您可以在此处看到很多测试(taken from chromium) 这是接受unicode的常规表达式的示例: 但是请记住,不应该只依赖JavaScript验证。可以轻松禁用JavaScript。这也应该在服务器端进行验证。 这是上述操作的一个示例:

  • 我正在使用Firebase的方法来验证电子邮件。以下是代码: 这里,< code>else代码应该只在电子邮件未经验证时运行。但是,即使在我验证了电子邮件并重新开始活动之后,< code>if语句仍不为< code>true,电子邮件将再次发送。

  • 我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。

  • 我是grails新手,正在用grails开发一个web应用程序。 在我的注册页面中,我正在获取用户的电子邮件ID,并且我需要发送带有身份验证链接的邮件。 http://grails.org/plugin/mail http://grails.org/plugin/email-confirmation 我参考了这些网页和许多其他网页来完成这项任务。但问题是,我的电子邮件没有发送。 我使用过 邮件设置

  • 问题内容: 有谁知道如何在Swift中验证电子邮件地址?我发现此代码: 但我无法将其翻译为Swift。 问题答案: 我会用: 对于低于3.0的Swift版本: 对于低于1.2的Swift版本: