您的位置: 首页 >快递网博客

ECSHOP如何解决Deprecated: preg_replace()报错

1)、错误原因:

preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了。 如果你的PHP版本恰好是PHP5.5.X,那你的ECSHOP肯定就会报类似下面这样的错误: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in......

2)、解决办法:

其实从刚才的错误提示信息中我们也能看出一二,它提示我们使用 preg_replace_callback 来代替 preg_replace。 所以解决方法如下:

使用记事本或其他PHP编辑软件(如:editplus)打开文件 includes/cls_template.php ,找到

return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);

替换为

return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);

问题解决。

3)、如果你的ECSHOP中其他文件也报类似的 preg_replace错误,请参照上面方法解决之,解决思路和解决方法是一样的。

“公司参数不正确”问题( ShopEx、EcShop、最土等插件)

问题背影 有大量的用户反馈,在安装我们的插件后,系统提示“公司参数不正确,请核查相关代码”。

原因 每个网店系统已配置好物流公司信息,这些信息已包含物流公司的名称,但这些名称与插件里的快递公司名称不一定相同,所以我们要求,将插件的kuaidi_config.php文件中的快递公司名称,修改成与快递网物流公司名称一致。如果文件中没有请自行添加! 但许多用户却分不清系统原有的、插件中的,和API使用说明页之间的区别。

解决办法 以下只以最土为例,给出解决方案,其他的插件参考此方法: 最土系统配置物流公司信息的页面是:QQ截图20160516135858

我们的插件的kuaidi_config.php文件是:QQ截图20160516140646

只需要参数匹配并和快递网一样即可。参考《kuaidi_api》该文档后面说明

EcShop插件ajax未定义问题

问题:安装上EcShop插件后,出现“正在查询物流信息,请稍后…”、“ajax未定义“等情况

原因:ecshop中的ajax对象是在js/transport.js文件中定义的,可能由于您的系统未能将这个文件引进来

解释:Ajax.call( ‘exaple.php?act=chk_exaple’, ‘username=’+ username, registed_callback , ‘GET’, ‘TEXT’, true, true);ajax.call后面的参数分别是(请求的URL地址,发送参数,回调函数,请求的方式,有”GET”和”POST”两种,响应类型,有”JSON”、”XML”和”TEXT”三种,是否异步请求的方式,是否安静模式请求)

解决办法: (1)引用jQuery库,并将ajax.call()换成$.get();

(2)将

Ajax.call(‘plugins/kuaidi/kuaidi_post.php?com=’+ expressid+’&nu=’ +expressno,’showtest=showtest’,function(data){document.getElementById(“retData”).innerHTML=data;},’GET’, ‘TEXT’);

改成

$.get(“

plugins/kuaidi/kuaidi_post.php”,{com:expressid,nu:expressno,showtest:’showtest’},

                   function(data)

                   {

                            $(“#retData”).html(data);

                   }

二维码