如何解决在Drupal 6.13中使用PHP 5.3.0的弃用函数ereg()

时间:2009-07-15 17:53:32

标签: php drupal drupal-6

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

  

不推荐使用:在第895行的C:\ wamp \ www \ includes \ file.inc中弃用了函数ereg()

在使用PHP 5.3.0

的wamp服务器2.0i上安装Drupal 6.13之后发生了这种情况

8 个答案:

答案 0 :(得分:33)

使用

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

而不是

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

答案 1 :(得分:11)

删除错误报告级别below E_DEPRECATED

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

答案 2 :(得分:1)

只需在功能前添加 @ 即可。 e.g。

@ereg()

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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

解决方案2:但是,如果您希望保留PHP 5.3,则始终可以抑制已弃用的函数错误。在Drupal的include / common.inc中, 找到这一行:

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

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

现在将始终禁止不推荐使用的错误消息。

答案 6 :(得分:-2)

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

答案 7 :(得分:-2)

因为我没有时间更新遗留代码,所以我将以下代码添加到php代码中以禁止显示警告。

error_reporting(E_ALL ^ E_DEPRECATED);

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