11

任何人都知道如何解决以下错误?

已弃用:函数 ereg() 在第 895 行的 C:\wamp\www\includes\file.inc 中已弃用

这是在使用 PHP 5.3.0 在 wamp 服务器 2.0i 上安装 Drupal 6.13 之后发生的

4

8 回答 8

47

采用

preg_match('/\.([^\.]*$)/', $this->file_src_name, $extension);

代替

ereg('\.([^\.]*$)', $this->file_src_name, $extension);
于 2016-08-23T06:19:40.120 回答
11

将错误报告级别降至 E_DEPRECATED 以下

PHP 5.3 引入了两个新的错误报告级别,E_DEPRECATED 和 E_USER_DEPRECATED,并且 - 这是 PHP 历史上的第一次 - 他们已经开始摆脱 API 的旧部分。ereg_* 函数仍然可以工作,但是这个警告是为了让你知道“嘿,这些函数很快就会消失,可能在下一个主要版本中)。

于 2009-07-15T18:05:21.343 回答
2

只需在函数前面添加@ 。例如

@ereg()

更多与升级运行 PHP 5.3.0 的 Web 服务器相关的问题,请参阅

http://www.rain-forest-forum.com/dotproject-net-installation-issues-t263.html

于 2012-04-06T01:16:38.070 回答
1

这不是 Drupal 问题。在 Drupal 站点中,注意到它还不支持 PHP 5.3,并且已经向 PHP 添加了新的错误标志。

解决方案 1:您可以取消 PHP 版本。您可以恢复到 PHP 5.2.x。因为我不确定与 Drupal 和 PHP 5.3 的其他冲突。

解决方案 2:但是,如果您更喜欢保留 PHP 5.3,您可以随时抑制已弃用的函数错误。在 Drupal 的 includes/common.inc 中,找到以下行:

if ($errno & (E_ALL ^ E_NOTICE)) { 并将其替换为:

if ($errno & (E_ALL & ~E_NOTICE & ~E_DEPRECATED)) {

现在,这将始终抑制已弃用的错误消息。

于 2013-06-05T09:53:39.890 回答
0

您可以编辑 common.inc 文件以悄悄地忽略已弃用的错误标志。见我的帖子: http://funkinetics.org/klink/function-ereg-is-deprecated-error-in-drupal-6x-with-php-53/

于 2009-07-20T19:09:16.413 回答
0

一种解决方案是升级有问题的源代码:-) 这里解释了:http: //drupal.org/node/514334#comment-2852940

于 2010-11-27T18:02:44.067 回答
-2

看起来问题出在 PHP 5.3.0 上。您可以尝试按照此 drupal 链接的建议降级到 5.2.9:http: //drupal.org/node/514334

于 2009-07-15T17:59:25.097 回答
-2

因为我没有时间更新旧代码,所以我在 php 代码中添加了以下行以抑制警告。

error_reporting(E_ALL ^ E_DEPRECATED);

此行仅抑制已弃用的警告。其他错误照常显示。

于 2012-03-12T19:11:12.890 回答