【问题标题】:PHP 5.1 to PHP 7.1 broke contact form [duplicate]PHP 5.1 到 PHP 7.1 破坏了联系表 [重复]
【发布时间】:2018-11-08 17:24:33
【问题描述】:

网络托管服务提供商升级到 PHP 7.1 并破坏了页面的联系表。我已经把它缩小到这段代码:

function check_email($mail)
{
    $email_host = explode("@", $mail);
    $email_host = $email_host['1'];
    $email_resolved = gethostbyname($email_host);
    if ($email_resolved != $email_host && @eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
    $valid = 1; return $valid;
}

我发现 PHP 7.1 不再支持 eregi 函数,但我不知道应该如何以及用什么替换它。

【问题讨论】:

    标签: php


    【解决方案1】:

    看看eregi function in php.net的文档:

    警告

    这个函数在 PHP 5.3.0 中被弃用,在 PHP 7.0.0 中被移除。

    此功能的替代方案包括:

    preg_match() (with the i (PCRE_CASELESS) modifier)
    

    当涉及到不推荐使用的功能时,您应该始终查看那里。

    对于验证电子邮件地址,您现在也可以使用filter_var

    if (filter_var('test@example.com', FILTER_VALIDATE_EMAIL)) {
        echo "Email valid.";
    }
    

    【讨论】:

      猜你喜欢
      • 2013-01-28
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      • 1970-01-01
      • 2018-09-11
      相关资源
      最近更新 更多