preg_replace php 5.6,解决网站程序和插件”preg_replace”报错问题 | 老左笔记

老左刚才在迁移一个客户企业网站的时候发现有报错提示"preg_replace()"函数错误,后面一长长的字符串我就没有记录下来总之就是这个报错。我看这个企业网站客户是使用的很早的ECSHOP CMS程序做的,一般我们都知道的企业网站只要保持正常的可以能打开,基本不需要动。

但是目前技术也在增进,服务器配置的软件也在提高。比如我们目前是使用的PHP7.4,至少也要使用PHP7.3,但是我估计是函数在PHP版本兼容问题。后来我查询资料发现,这个"preg_replace"只有在PHP5.6及以下才兼容的。

这里我想到三个解决方案:

第一、更换程序

我个人建议是让业务去找客户谈一谈,是否这么多年网站也不适应时代需求,是否可以换一个自适应的,以及当前美观度习惯的。如果这样的话,我们可以给他重新做一个网站,兼容PHP最新版本。

第二、修改程序

这里我们也可以看到,ECSHOP看到类似问题还是很多的。

includes/cls_template.php

在这个文件中找到:

return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);

然后替换成:

return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);

应该是可以解决的,这里我找到解决办法是可以用的。

第三、搭建适配环境

我们单独用一台服务器搭建PHP较低版本的,然后给客户单独存放。这样就显得浪费服务器资源。

这个是目前可以解决的办法,等业务问问客户是否更换网站,我们建议他更新适应当前版本PHP最新版本比较好,效率也高。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值