现如今有运行在php5.5版本环境的ecshop就会发现一些报错,而且很多空间商也不知道怎么解决,而这并不是php空间的问题。现在给大家讲解一下报错及解决方法报错:preg_replace_callback Requires argument 2, 'Array', to be a valid callback
这个报错就是提示:第二个参数不能为数组,只是一个回调,该如何解决呢?首先要找到这个调用的地方,如下:return preg_replace_callback($pattern, $replace, $source);
修改为:
return preg_replace_callback($pattern,
function ($m){
return $this->call_back($m[1]);
}
$source);
再定义“call_back”回调方法,即可
function call_back($matches){
return $matches[1].($matches[2]+1);
}
问题:
preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
其中有段代码:
return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source)
此问题是以为php 5.5以上版本抛弃了“preg_replace()”中的 “/e”其实删除掉“/e”即可解决,如下:
return preg_replace("/{([^\}\{\n]*)}/","\$this->select('\\1');", $source);
无忧主机相关文章推荐阅读:
ECSHOP团购编辑包数据库错误
ECSHOP一些常用的SQL执行语句
如何处理ECSHOP后台频繁自动退出
后台添加订单提示库存不足BUG解决(ECSHOP2.7.2版本)
本文地址:https://www.51php.com/ecshop/17777.html