Ecshop及大商创198版本,解决Deprecated: preg_replace()报错

PHP报错:preg_replace在ecshop中已弃用的问题 在使用ecshop进行开发时,如果遇到preg_replace函数已被弃用的报错,你可以使用preg_replace_callback函数作为替代。这个问题的解决方案涉及到对代码的修改,将preg_replace函数替换为preg_replace_callback函数,并编写相应的回调函数来执行替换操作。这个报错信息表明,你在使用preg_replace函数时,使用了已被弃用的/e修饰符。找到你的代码中使用了preg_replace函数的地方,将其替换为preg_replace_callback函数。 阅读详情

一:问题原因

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......

 

二:大商创198版本在php5.6运行(调试通过)

直接上代码

//文件includes\cls_template.php
//218行修改
return preg_replace("/{([^\\}\\{\n]*)}/e", '$this->select(\'\\1\');', $source);
return preg_replace_callback("/{([^\\}\\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);
//372行修改
$out = "<?php \n" . '$k = ' . preg_replace('/(\\\'\\$[^,]+)/e', 'stripslashes(trim(\'\\1\',\'\\\'\'));', var_export($t, true)) . ";\n";
$out = "<?php \n" . '$k = ' . preg_replace_callback('/(\\\'\\$[^,]+)/', function($r) {return stripslashes(trim($r[1], '\'')); }, var_export($t, true)) . ";\n";
//418行修改
$val = preg_replace('/\\[([^\\[\\]]*)\\]/eis', '\'.\'.str_replace(\'$\',\'$\',\'\\1\')', $val);
$val = preg_replace_callback('/\\[([^\\[\\]]*)\\]/', function($r) { return '.' . str_replace('$', '$', $r[1]);}, $val);
//866-868行,前面3行改为下面的2行
$pattern = '/<!--\\s#BeginLibraryItem\\s\\"\\/(.*?)\\"\\s-->.*?<!--\\s#EndLibraryItem\\s-->/se';
$replacement = '\'{include file=\'.strtolower(\'\\1\'). \'}\'';
$source = preg_replace($pattern, $replacement, $source);
$pattern = '/<!--\\s#BeginLibraryItem\\s\\"\\/(.*?)\\"\\s-->.*?<!--\\s#EndLibraryItem\\s-->/s';
$source = preg_replace_callback($pattern, function($r) {return '{include file=' . strtolower($r[1]) . '}'; }, $source);

//文件includes\lib_base.php
//1231行修改
$out = preg_replace('!s:(\\d+):"(.*?)";!se', '\'s:\'.strlen(\'$2\').\':"$2";\'', $serial_str);
$out = preg_replace_callback('!s:(\\d+):"(.*?)";!s', function($r) { return 's:' . strlen($r[2]) . ':"' . $r[2] . '";';}, $serial_str);

三:Ecshop代码修改,未试过

//Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in \includes\cls_template.php on line 300   
return preg_replace("/{([^\}\{]*)}/e", "\$this->select('\\1');", $source);
return preg_replace_callback("/{([^\}\{]*)}/", function($r) { return $this->select($r[1]); }, $source);
//Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in \includes\cls_template.php on line 491
$out = "<?php " . '$k = ' . preg_replace("/(\'\\$[^,] )/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";";
$out = "<?php " . '$k = ' . preg_replace_callback("/(\'\\$[^,] )/" , function($match){return stripslashes(trim($match[1],'\''));}, var_export($t, true)) . ";"
//Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in \includes\cls_template.php on line 550
$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);
$val = preg_replace_callback('/\[([^\[\]]*)\]/is',function ($matches) {return '.'.str_replace('$','\$',$matches[1]);},$val);
//Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in \includes\cls_template.php on line 1074
$source = preg_replace($pattern, $replacement, $source);
$source = preg_replace_callback($pattern, function ($matches) { return '{include file='.strtolower($matches[1]). '}';},$source);
//Strict Standards: Only variables should be passed by reference in ...\upload\includes\lib_main.php on line 1329
//原有内容:
$ext = end(explode('.', $tmp));
//修改后内容:
$extsub = explode('.', $tmp);
$tmp = end($extsub);
$tmp = basename($tmp,".$ext");

四:将代码修改后,进入后台,清空缓存,刷新页面即可。

ECSHOP完美解决Deprecated: preg_replace()报错的问题 随着PHP5.5 的普及,ECSHOP系统又爆出了新的错误。PHP发展到PHP5.5版本以后,有了很多细微的变化。而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百出。说了半天,这个新错误到底是什么呢,它的完整错误提示信息是这样的: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in……. 注意:不是所有人的ECSHOP都会报这个错误,只有使用PHP5.5环境的ECSHOP才会报这个错误。 下面ecshop开发中心(ww 立即下载

相关推荐

Python + Google AI 自动修复 Sonar Bug 实践

在工作中总会遇到种种不期而至的需求,比如前段时间突然要修复所有 Sonar Bug,涉及各种琐碎的代码风格问题,包括但不限于语法不规范、废弃注释等问题。这些项目都已经持续开发几年了,Sonar 上的问题层出不穷,各种问题已经累积到了上万个,手动修复不但费时费力,而且过程异常枯燥。

子洋 Blog 2416

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in ...

Ecshop解决Deprecated: preg_replace()报错:网上查找了很多资料总结完善的可用的,其中1、2、4都试过更改过可用,其余的我这边没报错就没亲身试过是否可行了。错误原因:   preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了。   如果你的PHP版本恰好是PHP5.5.X,那你的ECSHOP肯定就会报类似下面这样的错误:

龚清林的博客 4755

carsim软件教学

第一步打开小锁(红色标注) 新手往往一看界面是灰的,界面内的各种模块打开不了,以为没激活成功 所有模块必须复制之后,进行编辑,不要直接进行修改(很重要) 2.空气动力学模型(红色标注) 这里面主要设定了簧上质量。整车的整备质量在下图模块中进行设定 空气动力学。主要涉及到空气阻力,在下面模块中进行设定,有个问题需要注意,他的空气阻力与汽车理论的空气阻力公式不一致,这一点需要注意 下面这会模块基本上用不到,涉及到一个声音和汽车的外观 下面这个模块主要涉及到发动机功率,传动比还有 tao,档位的传动比,发

weixin_43796045的博客 2551

ecshop后台登录出Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback ···

进入ecshop 后台管理界面的时候出现  Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in....... 1)、错误原因: preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了。 如果你的PHP版本恰好是P

lzh_86的博客 2829

COMSOL电弧放电仿真:四场耦合与磁流体建模实战指南

多物理场耦合仿真是现代工程中模拟复杂物理过程的重要手段。电弧本质上是电场、磁场、流场与温度场四场相互耦合的非线性系统,其行为由磁流体力学(MHD)方程描述。通过COMSOL等工具构建电弧模型,可准确预测温度分布、流场结构和电极烧蚀,为开关电器设计、等离子体应用等提供数据支撑。在高压电器开断、电弧切割、激光打孔等工程问题中,高效求解MHD耦合模型是关键。然而,电弧仿真涉及物性参数强非线性、边界条件设置、求解器配置以及移动网格处理等挑战。以二维轴对称电弧模型为例,系统梳理磁流体方程落地、多物理场耦合节点配置、收

weixin_30047059的博客 135

目标检测 RT-DETR(2023)详细解读

在使用了这个技巧后,显然训练过程中,类别的标签不再是此前的0和1离散值,而是0~1的连续值。关于 Query Selection(查询向量选择),大家应该并不陌生,这个方法可谓在DETR领域大杀四方,如DAB-DETR对查询向量进行重构理解,将其解释为Anchor,DN-DETR通过查询降噪来应对匈牙利匹配的二义性所导致的训练时间长的问题,DINO提出从Encoder中选择Top-k特征进行学习等一系列方法,这都无疑向我们证明,查询向量很重要,选择好的Query能够让我们事半功倍。在RT-DETR中,

qq_51352130的博客 5869

ECSHOP如何解决DEPRECATED: PREG_REPLACE()报错

类似这样的报错: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead inD:\wyh\ecshop\includes\cls_template.phpon line300 1、错误原因:preg_replace() 函数中用到的修饰符 /e 在...

weixin_30635053的博客 228

博图Advanced实战:VB脚本实现HMI画面智能弹出(附完整代码解析)

本文详细介绍了在西门子博图Advanced平台中利用VB脚本实现HMI画面智能弹出的实战方法。通过动态计算坐标、分辨率自适应方案和完整代码解析,帮助工程师解决不同显示环境下的定位难题,提升工业自动化界面的交互体验。

weixin_29041767的博客 343

php 5.5 preg replace,解决ecshop在php5.5以上环境preg_replace报错方法

主要集中在 upload/includes/cls_template.php 文件中:1:line 300 :原语句:return preg_replace(“/{([^\}\{\n]*)}/e”, “\$this->select(‘\\1’);”, $source);修改为:return preg_replace_callback(“/{([^\}\{\n]*)}/”, function(...

weixin_39762838的博客 255

FPGA打砖块游戏设计(有上板照片)VHDL

这是一款经典打砖块游戏,我们的努力让它更精致更好玩,我们将它取名为打砖块游戏(Flyball),以下是该系统的一些基本功能: 画面简约而经典,色彩绚丽而活泼,动画流畅 玩家顺序挑战3个不同难度的级别,趣味十足 计分功能,卡通字母数字 4条生命值,由生命条显示 游戏结束画面,缓缓浮起与缤纷刷色的特效 四键操作,可复位,可暂停,高灵敏 96块砖拼出可爱的“囧”字,方便更改 碰挡板非镜面反射 初始启动,随机的发射速度。

QQ_778132974的博客 1662

[Python + UG NX 二次开发新手教程] 第五课 采用Python / UF 开发模式

在 NX 二次开发里看到的“UF”是的缩写,它是 Siemens 提供的集合,也是整个 NX Open 体系里最贴近内核、历史最悠久的一套接口。相当于 NX 的“系统调用”——只要 NX 能做的事,UF 几乎都能调得动。Siemens 从 NX 12 开始把原来的 C 接口(UF)全部打包进了官方 Python 模块,命名空间为 NXOpen.UF.*,所以只要 NX 安装目录里带了 NXOpen\UF 子模块,就能在 Python 里直接调用 UF 函数。

温良 1004

解决Deprecated: preg_replace(): The /e modifier is deprecated的三个方法

因为php版本过高,preg_replace已经被弃用.可以对php进行降低版本来解决. 也可以把preg_replace替换为reg_replace_callback,具体方法网上搜索Deprecated: preg_replace(): The /e modifier is deprecated 相关的提示解决 或直接隐藏Deprecated级别的错误提示.方法是修改服务器上,php目录中...

7235

R语言中的Gamma分布函数

在R语言中,我们可以使用最大似然估计(Maximum Likelihood Estimation,MLE)或最小二乘估计(Least Squares Estimation,LSE)等方法来估计Gamma分布的参数。本文介绍了在R语言中使用Gamma分布函数的基本操作,包括生成随机变量、计算概率密度函数和累积分布函数,以及参数估计和拟合。函数来生成Gamma分布的随机变量,计算概率密度函数(PDF)和累积分布函数(CDF),以及进行参数估计和拟合。要计算Gamma分布的累积分布函数(CDF),我们可以使用。

ByteWhiz的博客 1632

ecshop中preg_replace替换为preg_replace_callback需要注意的事项

$pattern     = '/.*?/se';             $replacement = "'{include file='.strtolower('\\1'). '}'";             $source      = preg_replace($pattern, $replacement, $source); 这一段代码有两处需要修改: $pattern

Robin罗兵 3420

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ECSHOP解决Deprecated: preg_replace()报错

类似这样的报错:Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in D:\wyh\ecshop\includes\cls_template.php on line 3001、错误原因: preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.

龚清林的博客 697

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ecshop系统前后台出现的几个错误修正升级到PHP5.6后

基于整个系统的优化和性能和对各种网站程序的支持程度方面来考虑,最近更换了操作系统和网站运行环境,把php从原来的5.3升级到了现在的5.6,当初没有升级php环境一个重要原因就是不想去修改各个程序对php5.6的兼容代码,引起这个话题的主要原因是php5.6丢弃了5.3版本的很多参数和书写规范,导致原来的代码运营在5.6版本上出错。今天就细细给大家说说我在搬迁百蔬网时遇到的几个问题,和大家共勉。 preg_replace函数是蛮多地方需要修改的一个函数,改动最多的是它,特别是后台很多地方都是提示这个函数的

程序发烧猿's Blog 491

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

随着PHP5.5 的普及,ECSHOP系统又爆出了新的错误。PHP发展到PHP5.5版本以后,有了很多细微的变化。而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百出。说了半天,这个新错误到底是什么呢,它的完整错误提示信息是这样的: Deprecated: preg_replace(): The /e modifier is deprecated, use p

程序员写的技术 FAQ 和杂文 896

208 preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

一开始没注意,后来发现 很多这样的警告,于是网上查了下 发现 php5.5版本以上 就废弃了 preg_replace 函数中 /e 这个修饰符 /e 这个修饰符的意思 就是让 正则替换的 时候 替换规则 支持 php 代码 ...

phpstory的博客 1205

php preg replace报错,ECSHOP完美解决Deprecated: preg_replace()报错的问题

随着PHP5.5 的普及,ECSHOP系统又爆出了新的错误。PHP发展到PHP5.5版本以后,有了很多细微的变化。而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百出。说了半天,这个新错误到底是什么呢,它的完整错误提示信息是这样的:Deprecated: preg_replace(): The /e modifier is deprecated, use pre...

weixin_34441588的博客 331

Ecshop如何解决Deprecated: preg_replace()报错 (第一章)

今天安装Ecshop后,运行出现各种问题,其中 Deprecated: preg_replace() 之类的报错最多,下面贴出解决方案: 错误原因: preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了。 如果你的PHP版本恰好是PHP5.5.X,那你的ECSHOP肯定就会报类似下面这样的错误: Deprecated: preg_replace(): The...

qq_43292127的博客 597

安装ecshop网店系统常见错误及解决办法

创建配置文件............成功 创建数据库............成功 安装数据............失败 Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.ti

wuDaSong_的专栏 8706

大商创MySQL不支持_大商创配置文件config.php详解

大商创配置文件config.php在data目录下,config.php配置文件主要用于配置数据库。//databasehost$db_host="localhost:3306";//databasename$db_name="codingwhy";//databaseusername$db_user="root";//databasepassword$db_pass="r...

weixin_39612896的博客 466

大商创2.28要求的php,大商创部分问题解决办法

新用户注册提示 手机号或邮箱已存在的问题:解决:打开 includes / lib_wholesale.php 文件将第一行空格删掉即可。手机端使用微信支付报错问题:1.)解决:打开mobile/app/modules/paymengt/wxpay.php文件大概308行左右,修改成如下图:2.)报错50行解决:打开mobile/app/modules/paymengt/wxpay.php文件大概...

weixin_33734087的博客 526

ECSHOP模板堂教程之:目录结构

2016 ecshop模板堂教程之:目录结构网站:知识库来源:网络收集——————————— ———————- —————————- ———————————- —————- ————————————— —— —– —————– 2016 ecshop模板堂教程之:目录结2016年ecshop模板堂最新整理编辑ecshop程序目录结构文件说明ecshop模板堂是国内电商系统及服务领导品牌,产品链贯穿...

预约新宇宙的博客 1060

php时间戳,日期时间转换及使用大全

php开发过程中,经常会用到一些针对日期、时间、时间戳的转换获取等操作,如下个月第一天啊,上周啊,每个月第三天啊;形式多样,层出不穷。然而,具体到应用时,总想不起具体使用方式,查询网上总没有一个非常全面的整理。不论是博客上还是官网上,都不全面,有的只是文字说明,有的只是简单实例,都不具有实战性。 基于此,整理本文;本文几乎全部是实例;看着非常方便。 //时间戳加减时间段,例子中的month及m...

修炼武功 8595
上一篇: php环境下,两种汇率接口,已经测试通过
下一篇: php从文件夹中搜索关键字
喜爱cpp
博客等级 码龄18年 129粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜爱cpp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值