ecshop那些事

是不是对最新版本的php 适配ecshop很苦恼.最近我就遇到了这个事情,最终我花了一个小时的时间把这个问题解决了.

特放出来,方便大家查阅.

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in   \includes\cls_template.php on line 300 的错误,请问我应该怎么改?

这个错误存在于ecshop 最高版本2.7.3 ,在php 5.4 以上版本都存在.

下面我列出需要改动的地方.

用editplus或者其他工具,不建议用记事本,因为可能会改变原有文件的编码格式.

第300行

原有内容:

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

修改后内容: 

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

第491行

原有内容:

//$out = "<?php \n" . ‘$k = ‘ . preg_replace("/(\‘\\$[^,]+)/e" , "stripslashes(trim(‘\\1‘,‘\‘‘));", var_export($t, true)) . ";\n";

修改后内容:

$out = "<?php \n" . ‘$k = ‘ . preg_replace_callback("/(\‘\\$[^,]+)/" ,

function($match){return stripslashes(trim($match[1],‘\‘‘));}

, var_export($t, true)) . ";\n";

第550行

原有内容:

//$val = preg_replace("/\[([^\[\]]*)\]/eis", "‘.‘.str_replace(‘$‘,‘\$‘,‘\\1‘)", $val);

修改后内容:

$val = preg_replace_callback(

‘/\[([^\[\]]*)\]/is‘,

function ($matches) {

return ‘.‘.str_replace(‘$‘,‘\$‘,$matches[1]);

},

$val

);

第1080行

原有内容:

//$source      = preg_replace($pattern, $replacement, $source);

修改后内容:

$source      = preg_replace_callback($pattern,

function ($matches) { return ‘{include file=‘.strtolower($matches[1]). ‘}‘;},

$source);

替换为后,上传到服务器.然后进入后台,清空缓存即可.

时间: 2024-12-14 05:26:39

ecshop那些事的相关文章

ECshop 表结构

-- 表的结构 `ecs_account_log`CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',`user_money` deci

ECshop 数据库表结构

ECshop 数据库表结构 -- 表的结构 `ecs_account_log`CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',`us

【转】-ECshop数据库表结构

-- 表的结构 `ecs_account_log`CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',`user_money` deci

ECShop——给商品详情页添加字段

这两天在玩ECShop网店系统,对于一个技术外行,ECShop还是挺容易上手的,系统本身就提供了很多功能,一般情况下使用默认的功能就足够了.但是通用的东西肯定不能满足所有的用户需求,比如商品详细页的描述,就几乎没法做到适合所有商品,所以给商品页增加显示字段以更好地描述商品就显得很必要.下面就结合我这两天的经历,讲述一下怎样给商品页增加一个字段. 其实,增加商品页的显示内容,除了增加字段外,还有一个简单的方法就是通过添加商品属性来解决.这个操作很简单,只要在管理后台操作就行了,具体位置就是“商品管

ECshop 数据库表结构 -- 表的结构

ECshop 数据库表结构 -- 表的结构 `ecs_account_log` CREATE TABLE IF NOT EXISTS `ecs_account_log` ( `log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号', `user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',

Ecshop数据表结构

-- 表的结构 `ecs_account_log`CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',`user_money` deci

ECSHOP 数据库结构说明 (适用版本v2.7.3)

1.account_log 用户账目日志表 字段 类型 Null/默认 注释 log_id mediumint(8) 否 / 自增 ID 号 user_id mediumint(8) 否 / 用户登录后保存在session中的id号,跟users表中user_id对应 user_money decimal(10,2) 否 / 用户该笔记录的余额 frozen_money decimal(10,2) 否 / 被冻结的资金 rank_points mediumint(9) 否 / 等级积分,跟消费积

ECSHOP自动收货解决方案 【附代码】

ecshop系统,本身不带自动确认收货的,网上也找了一下,很多很复杂,且需要在服务器端设置定时任务,如果是虚拟主机,基本上就歇菜了. 某宝有一些卖自动收货的插件,不太了解其机制,不过也比较贵,要1-200一个.没办法,就自己开发吧.以下为解决方案. 解决思路: 跟淘宝的类似,默认设置7天后还没有自动确认收货,那么就会系统强制确认收货.只不过这个强制确认收货,没有在系统里设置常驻内存的程序,也没有设置系统自动任务,为变通的方案.设定为用户在登录成功后,进入用户中心页面,就会扫描自己名下,有没有超过

关于打码的一些事

1.今晚打代码算是遇到好多问题了,但是谷歌,stackoverflow,谷歌翻译,一点点都解决了,问别人也没回,所以说还是靠自己,记得更久一些,自己栽过的坑,印象会更深刻. 2.静下心来做一件事,很多事情没想象的那么难的. 3.喜欢这种学习后的充实感,不会像打完游戏或者看完视频一样迷茫. 4.继续加油吧. 5.原来右键网页图片可以get到url.