任何人都知道如何解决以下错误?
不推荐使用:在第895行的C:\ wamp \ www \ includes \ file.inc中弃用了函数ereg()
在使用PHP 5.3.0
的wamp服务器2.0i上安装Drupal 6.13之后发生了这种情况答案 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);
此行仅抑制已弃用的警告。其他错误照常显示。