PHPCMS安装时提示错误Cannot redeclare go() 解决方案

今天准备测试一个PHPCMS的功能模块,准备全新安装个PHPCMS用于调试修改,上传了自己修改过的PHPCMS的安装程序(PHPCMS v9.6.3 UE4修正版 安装包),然后准备打开页面开始install的时候突然发现出错PHP错误提示

Cannot redeclare go() in xxx/phpcms/libs/functions/global.func.php on line 1476

突然之间有点懵圈,这个安装包是我自己修改过,我自己的好几个站都用的这个安装包。也在网上分享给很多朋友使用,从来没出现过这个错误啊,而且这个错误还是出现在安装前,不论打开index.php还是install/install.php都是提示这个错误,我满头雾水。

尝试使用官方原版的PHPCMS安装包,也还是同样情况…
我详细查看了一下global.fun.php中的go()方法,并且全站查找了一下所有function go()的地方,没有发现任何问题,但是错误就那样摆在你面前,让你页面打不开,安装执行不了,顿时一万头神兽在我心里奔腾而过
难道是环境问题?突然想起昨天我安装了一个PHP的扩展–swoole,难道是这货?
百度了一番,果然!
最新版的swoole中声明使用了一个同名函数,大悟~
总不能就此卸载swoole吧,我整准备好好摸索摸索swoole呢
于是提供解决方案: 重命名PHPCMS的go方法名称为pc_go,以此解决和swoole方法名冲突的问题

修改如下

1.修改文件
phpcms/libs/functions/global.func.php
找到

function go($catid,$id, $allurl = 0)

修改成

function pc_go($catid,$id, $allurl = 0)

2.修改文件
phpcms/modules/admin/position.php
找到

 $r['url'] = go($_v['catid'], $_v['id']);

修改成

 $r['url'] = pc_go($_v['catid'], $_v['id']);

3.修改文件
phpcms/modules/classes/comment_api.class.php
找到

return array('title'=>$r['title'], 'url'=>go($catid, $contentid, 1), 'allow_comment'=>(isset($data_info['allow_comment']) ? $data_info['allow_comment'] : 1));

修改成

return array('title'=>$r['title'], 'url'=>pc_go($catid, $contentid, 1), 'allow_comment'=>(isset($data_info['allow_comment']) ? $data_info['allow_comment'] : 1));

4.修改文件
phpcms/modules/classes/content_tag.class.php
找到

$array[$key]['url'] = go($info['catid'],$info['id']);

修改成

$array[$key]['url'] = pc_go($info['catid'],$info['id']);

5.修改文件
phpcms/modules/member/content.php
找到

$_v['url'] = $_v['status']==99 ? go($_v['catid'],$_v['id']) : APP_PATH.'index.php?m=content&c=index&a=show&catid='.$_v['catid'].'&id='.$_v['id'];

修改成

$_v['url'] = $_v['status']==99 ? pc_go($_v['catid'],$_v['id']) : APP_PATH.'index.php?m=content&c=index&a=show&catid='.$_v['catid'].'&id='.$_v['id'];

6.修改文件
phpcms/modules/special/classes/special_tag.class.php
找到

$r['url'] = go($content_arr['1'], $content_arr['0']);

修改成

$r['url'] = pc_go($content_arr['1'], $content_arr['0']);

7.修改文件
phpcms/modules/special/templates/content_list.tpl.php
找到

$r['url'] = go($content_arr['1'], $content_arr['0']);

修改成

$r['url'] = pc_go($content_arr['1'], $content_arr['0']);

按以上步骤修改就避免了phpcms函数和swoole函数同名冲突的问题

如此,就解决了PHPCMS安装时遇到Cannot redeclare go() 错误提示的问题

本文由 www.UE4.net 原创提供 黄韬 QQ:95606117,转载请注明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值