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

问题描述 投票:5回答:8

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

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

在使用PHP 5.3.0在wamp服务器2.0i上安装Drupal 6.13之后发生了这种情况

php drupal drupal-6
8个回答
11
投票

删除错误报告级别below E_DEPRECATED

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


33
投票

使用

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

代替

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

1
投票

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

@ereg()

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

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


0
投票

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


0
投票

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


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)){

现在,这将始终禁止Deprecated错误消息。


-2
投票

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


-2
投票

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

error_reporting(E_ALL ^ E_DEPRECATED);

此行仅抑制已弃用的警告。其他错误像往常一样显示。

© www.soinside.com 2019 - 2024. All rights reserved.