你好,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']; ?> 展开
//$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']; ?> 展开
展开全部
这个问题是PHP的版本问题:
preg_replace这个函数自php5.5以后就被废弃了。代替它的是preg_replace_callback 。但是如果要替换的话改动的地方很多。我就是将php版本降了,降到5.3了就好了。
你如果一定要用高版本的php的话,那就到ecshop的模板课堂里面有解决方案,这是链接http://www.ecmoban.com/help-33.html,你试试看行不行!
preg_replace这个函数自php5.5以后就被废弃了。代替它的是preg_replace_callback 。但是如果要替换的话改动的地方很多。我就是将php版本降了,降到5.3了就好了。
你如果一定要用高版本的php的话,那就到ecshop的模板课堂里面有解决方案,这是链接http://www.ecmoban.com/help-33.html,你试试看行不行!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询