你好,ecshop preg_replace你都是怎么解决的啊

大多数报错都解决了,就剩一个//$val=preg_replace("/\[([^\[\]]*)\]/eis","'.'.str_replace('$','\$','\\... 大多数报错都解决了,就剩一个
//$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);
$val = preg_replace_callback("/\[([^\[\]]*)\]/is",function($match){ return '.'.str_replace('$','\$',$match[1]);}, $val);

如果改成下边这种方式,大多数页面都没有问题,后来发现订单列表页面改了之后就不行了,状态显示不出来

页面上是{$lang.os[$order.order_status]}
没改之前编译成<?php echo $this->_var['lang']['os'][$this->_var['order']['order_status']]; ?>
改之后编译成了<?php echo $this->_var['lang']['os']['\$order']['order_status']; ?>
展开
 我来答
怡然凝望
2014-05-25 · TA获得超过146个赞
知道小有建树答主
回答量:234
采纳率:60%
帮助的人:137万
展开全部
这个问题是PHP的版本问题:
preg_replace这个函数自php5.5以后就被废弃了。代替它的是preg_replace_callback 。但是如果要替换的话改动的地方很多。我就是将php版本降了,降到5.3了就好了。
你如果一定要用高版本的php的话,那就到ecshop的模板课堂里面有解决方案,这是链接http://www.ecmoban.com/help-33.html,你试试看行不行!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式