是php5.5版本不对吗
1个回答
2017-02-11 · 知道合伙人互联网行家
关注
展开全部
现如今有运行在php5.5版本环境的ecshop就会发现一些报错,而且很多空间商也不知道怎么解决,而这并不是php空间的问题。现在给大家讲解一下报错及解决方法报错:preg_replace_callback Requires argument 2, ‘Array’, to be a valid callback
这个报错就是提示:第二个参数不能为数组,只是一个回调,该如何解决呢?首先要找到这个调用的地方,如下:
1 return preg_replace_callback($pattern, $replace, $source);
修改为:
1 return preg_replace_callback($pattern,
2 function ($m){
3 return $this->call_back($m[1]);
4 }
5 $source);
再定义“call_back”回调方法,即可
1 function call_back($matches){
2 return $matches[1].($matches[2]+1);
3 }
问题:
1 preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
其中有段代码:
1 return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source)
此问题是以为php 5.5以上版本抛弃了“preg_replace()”中的 “/e”其实删除掉“/e”即可解决,如下:
view sourceprint?
1 return preg_replace("/{([^\}\{\n]*)}/","\$this->select('\\1');",
这个报错就是提示:第二个参数不能为数组,只是一个回调,该如何解决呢?首先要找到这个调用的地方,如下:
1 return preg_replace_callback($pattern, $replace, $source);
修改为:
1 return preg_replace_callback($pattern,
2 function ($m){
3 return $this->call_back($m[1]);
4 }
5 $source);
再定义“call_back”回调方法,即可
1 function call_back($matches){
2 return $matches[1].($matches[2]+1);
3 }
问题:
1 preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
其中有段代码:
1 return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source)
此问题是以为php 5.5以上版本抛弃了“preg_replace()”中的 “/e”其实删除掉“/e”即可解决,如下:
view sourceprint?
1 return preg_replace("/{([^\}\{\n]*)}/","\$this->select('\\1');",
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询