【问题标题】:Function ereg() is deprecated不推荐使用函数 ereg()
【发布时间】:2010-11-28 15:31:04
【问题描述】:

我已经开始学习 PHP。所以在我的 Windows 7 机器上安装了 WAMP 服务器。我正在尝试以下 PHP 代码:

<?php
$phrase = "I love PHP";
if (ereg("PHP", $phrase)) {
  echo "The expression matches";
}
?>

当我在我的 mozilla 中尝试这个时,我得到了输出:

Deprecated: Function ereg() is deprecated in C:\wamp\www\learnphp\common.php on line 3
The expression matches

我认为代码是正确的。我无法理解错误。谁能解释一下这里的“已弃用”是什么意思?以及如何解决这个错误?

我的 php 版本是 5.3.0。会不会是版本问题?

编辑:我用谷歌搜索并在 www 文件夹中找到了有关 include\file.inc 文件的内容。我的 www 文件夹中没有包含目录。

【问题讨论】:

    标签: php regex


    【解决方案1】:

    “已弃用”表示 PHP 5.3.0 不再支持该功能。

    您应该将ereg() 视为不再存在。

    该功能仍然存在,但只是为了支持使用它的现有应用程序。

    在编写新代码时,切勿使用已弃用的函数。

    请考虑使用preg_match 函数。

    【讨论】:

      【解决方案2】:

      已弃用意味着此函数最终将在未来版本中从 PHP 中删除。您不应再在代码中依赖它,而应使用建议的替代方法。

      如果是 PHP 的ereg, heed the notice in the PHP Manual:

      从 PHP 5.3.0 开始,正则表达式扩展已被弃用,取而代之的是 PCRE 扩展。调用此函数将发出 E_DEPRECATED 通知。有关转换为 PCRE 的帮助,请参阅 list of differences

      另见PHP手册中E_DEPRECATED的描述。
      有关 PHP5.3 中所有已弃用的功能,请参阅Deprecated features in PHP 5.3.x
      有关更多一般信息,请参阅Wikipedia article on Deprecation in Software

      【讨论】:

      • 这也意味着你正在学习的教程已经过时了,你应该找到一个现代的。
      【解决方案3】:

      这意味着您正在使用的功能现在已过时。您不能再使用此功能。我收到了与 PHP 5.5.6 相同的错误。解决您的问题的一种可能方法是降级您的 PHP 版本以便获得支持。

      【讨论】:

        猜你喜欢
        • 2012-11-14
        • 1970-01-01
        • 1970-01-01
        • 2011-03-05
        • 2019-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多