ECshop在PHP5.3以上版本错误处理

ecshop是一套开源的商城系统,由于出现较早,很多写法不支持较高版本的PHP,目前PHP5.2对ecshop的支持很少。

一般在高版本的PHP中,会出现一些问题,下面是一些在网上找到的答案,经过自己测试可用。

错误1、

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in E:\hx\wamp\www\weixin\includes\cls_template.php on line 300

1)、错误原因:
preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了。

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);
问题解决。

错误2、

Strict standards: Only variables should be passed by reference in E:\hx\wamp\www\weixin\includes\cls_template.php on line 423

错误原因:PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值传递,所以这段代码中的explode就得移出来重新赋值了

解决办法:将$tag_sel = array_shift(explode(‘ ‘, $tag));分开写成

$temp = explode(‘ ‘, $tag);
$tag_sel = array_shift($temp);

错误3:Strict standards: Non-static method cls_image::gd_version() should not be called statically in

错误原因:不是静态类中的方法

解决办法:将return cls_image::gd_version();修改为

$p = new cls_image();
return $p->gd_version();

时间: 2024-07-30 19:47:48

ECshop在PHP5.3以上版本错误处理的相关文章

ecshop 在php5.5上安装错误解决

1.找到ecshop\includes\cls_image.php文件 搜索 function gd_version 改成 static function gd_version 2.Strict Standards: Only variables should be passed by reference in D:\wamp\ecshop\includes\cls_template.php on line 422 ecshop\includes\cls_template.php 把 $tag_

ecshop php5.4以上版本错误之preg_replace 替换成 preg_replace_callback

类似这样的报错: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead inD:\wyh\ecshop\includes\cls_template.php on line 300 1.错误原因:preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了.如果你的PHP版本恰好是PHP5.5.X,那你的ECSHOP肯定就会报类似这样的

php5.5以上版本编译扩展模块方法

在编译php5.5以上版本的时候发现,直接下载扩展包编译安装不太好用.其实这个版本以上的php在自身的ext的目录中已经放了不少的扩展模块,编译好了,模块就直接加载进来了.如图: 拿pdo_mysql这个模块为例,进入到这个目录中执行命令phpize,之后出现问题了 根据错误提示确定缺少了某些的包,执行命令安装这些包 yum –y install autoconf yum –y install m4 安装完这两个包之后在执行phpize后没有报错了 然后执行命令 ln -s /usr/local

在PHP5.5.34版本中启用Zend Opcache

大家知道目前PHP的缓存插件一般有三个:APC.eAccelerator.XCache,但未来它们可能都会消失,因为PHP 5.5已经集成Zend Opcache,功能和前三者相似但又有少许不同,缓存速度据说比它们更快(注意:只是据说,我没测试过).这几个PHP加速插件的主要原理都相同,就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载,它们的效率是显而易见的.Zend Opcache在PHP 5.5后的版本中已经集成了,编译安

wamp环境单独安装(windows下apache2.4、mysql5.5、php5.5的版本)

当前我使用的是apache2.4.mysql5.5.php5.5的版本 软件下载: 1.vc2012 2.apache 3.mysql 4.php 以上四个需要的软件我已经打包上传至51CTO下载中心,需要的话可以去下载,以下的安装步骤都是基于上面的这几个安装所需的软件进行的,非常的详细,因为考虑到从未安装使用过的朋友能快速的安装配置,每个步骤都有详细的说明. 1.选择版本:   Apache2.4.10 x86版本 2.VC11的依赖(vc2012 x86) 安装顺序:1.vc2012(x86

PHP5.5降版本到5.4.45,K哥

2015.10.8 PHP5.5降版本到5.4.45 主管找到我,开发发现PHP5.5不支持某些插件,具体不懂开发的东西 需要把PHP降级到5.4.45 OK,开始研究 1.首先降级肯定要停网站,报给主管 2.肯定不能用YUM,需要自己编译安装 3.备份是必须要先做的 OK,那先备份吧 都需要备份什么呢 MYSQL数据库.PHP配置文件.网站文件 一定有人说了,需要备份这么多吗 就怕万一啊,万一服务器磁盘坏了你找谁,找谁也没用的 1.数据库备份,这是我喜欢的备份命令 mysqldump -uro

Unsupported major.minor version 51.0(JDK版本错误)

Unsupported major.minor version 51.0  at java.lang.ClassLoader.defineClass1(Native Method)  at java.lang.ClassLoader.defineClassCond(Unknown Source)  at java.lang.ClassLoader.defineClass(Unknown Source)  at java.security.SecureClassLoader.defineClass

maven-compiler-plugin 版本错误解决方法

项目执行Maven build后出现WARNING提示.报如信息如下,根据报错信息猜测是maven-compiler-plugin的版本信息问题 [WARNING] [WARNING] Some problems were encountered while building the effective model for com.xxx.xxx:xxxx:jar:0.0.1-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for org.ap

错误:Unsupported major.minor version 51.0(jdk版本错误)解决方案

在Win7+MyEclipse2014环境下,部署可执行项目源文件,需要根据开发开发时使用的JDK版本重新引入jar包: 方法:①在对应项目上右键选择Build Path——>Configure Bulid Path...,点击Libraries,查找并替换带红叉的jar包(通过Add External JARs...):        ②查看JRE System Library[jdk……]版本是否正确,通过Add Library...替换正确JDK版本的jar包. 发布程序,运行后出现ERR