现如今有运行在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);
新闻热点
疑难解答