任何人都知道如何解决以下错误?
已弃用:函数 ereg() 在第 895 行的 C:\wamp\www\includes\file.inc 中已弃用
这是在使用 PHP 5.3.0 在 wamp 服务器 2.0i 上安装 Drupal 6.13 之后发生的
采用
preg_match('/\.([^\.]*$)/', $this->file_src_name, $extension);
代替
ereg('\.([^\.]*$)', $this->file_src_name, $extension);
将错误报告级别降至 E_DEPRECATED 以下。
PHP 5.3 引入了两个新的错误报告级别,E_DEPRECATED 和 E_USER_DEPRECATED,并且 - 这是 PHP 历史上的第一次 - 他们已经开始摆脱 API 的旧部分。ereg_* 函数仍然可以工作,但是这个警告是为了让你知道“嘿,这些函数很快就会消失,可能在下一个主要版本中)。
只需在函数前面添加@ 。例如
@ereg()
更多与升级运行 PHP 5.3.0 的 Web 服务器相关的问题,请参阅
http://www.rain-forest-forum.com/dotproject-net-installation-issues-t263.html
这不是 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)) {
现在,这将始终抑制已弃用的错误消息。
您可以编辑 common.inc 文件以悄悄地忽略已弃用的错误标志。见我的帖子: http://funkinetics.org/klink/function-ereg-is-deprecated-error-in-drupal-6x-with-php-53/
一种解决方案是升级有问题的源代码:-) 这里解释了:http: //drupal.org/node/514334#comment-2852940
看起来问题出在 PHP 5.3.0 上。您可以尝试按照此 drupal 链接的建议降级到 5.2.9:http: //drupal.org/node/514334
因为我没有时间更新旧代码,所以我在 php 代码中添加了以下行以抑制警告。
error_reporting(E_ALL ^ E_DEPRECATED);
此行仅抑制已弃用的警告。其他错误照常显示。