如何解决在Drupal 6.13中使用PHP 5.3.0的弃用函数ereg()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决在Drupal 6.13中使用PHP 5.3.0的弃用函数ereg()相关的知识,希望对你有一定的参考价值。
任何人都知道如何解决下面的错误?
不推荐使用:函数ereg()在第895行的C: wamp www includes file.inc中已弃用
在使用php 5.3.0在wamp服务器2.0i上安装Drupal 6.13之后发生了这种情况
删除错误报告级别below E_DEPRECATED。
PHP 5.3引入了两个新的错误报告级别,E_DEPRECATED和E_USER_DEPRECATED,并且 - 这是PHP历史上的第一次 - 他们开始放弃API的旧部分。 ereg_ *函数仍然有效,但是这个警告旨在让你知道“嘿,这些函数很快就会消失,可能在下一个主要版本中”。
使用
preg_match('/.([^.]*$)/', $this->file_src_name, $extension);
代替
ereg('.([^.]*$)', $this->file_src_name, $extension);
只需在函数前添加@即可。例如
@ereg()
有关升级运行PHP 5.3.0的Web服务器的更多问题,请参阅
http://www.rain-forest-forum.com/dotproject-net-installation-issues-t263.html
您可以编辑common.inc文件以静默忽略已弃用的错误标志。看我的帖子:http://funkinetics.org/klink/function-ereg-is-deprecated-error-in-drupal-6x-with-php-53/
一个解决方案是升级有问题的源代码:-)它在这里解释:http://drupal.org/node/514334#comment-2852940
这不是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错误消息。
看起来问题出在PHP 5.3.0上。您可以尝试按照此drupal链接建议降级到5.2.9:http://drupal.org/node/514334
因为我没有时间更新遗留代码,所以我将以下代码添加到php代码以禁止显示警告。
error_reporting(E_ALL ^ E_DEPRECATED);
此行仅抑制已弃用的警告。其他错误像往常一样显示。
以上是关于如何解决在Drupal 6.13中使用PHP 5.3.0的弃用函数ereg()的主要内容,如果未能解决你的问题,请参考以下文章