如何解决ECSHOP模板在高PHP版本服务器上报错的问题?

avatar
作者
猴君
阅读量:0
请尝试降级PHP版本至ECSHOP支持的版本,或修改代码以兼容新版本。

一、Strict Standards: mktime(): You should be using the time() function instead

如何解决ECSHOP模板在高PHP版本服务器上报错的问题?

错误提示 修改方法
mktime(): You should be using the time() function instead$auth = mktime(); 替换为$auth = time();

二、Strict Standards: Only variables should be passed by reference

错误提示 修改方法
Only variables should be passed by reference$tag_sel = array_shift(explode(' ', $tag)); 替换为$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);

三、Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

错误提示 修改方法
preg_replace(): The /e modifier is deprecated, use preg_replace_callback insteadreturn preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val); 替换为return preg_replace_callback("/\[([^\[\]]*)\]/", function($r) { return '.'.str_replace('$','$',$r[1]); }, $val);

四、Strict Standards: Non-static method cls_image::gd_version() should not be called statically

错误提示 修改方法
Non-static method cls_image::gd_version() should not be called staticallyreturn cls_image::gd_version(); 替换为$p = new cls_image(); return $p->gd_version();

五、Strict Standards: Redefining already defined constructor for class

如何解决ECSHOP模板在高PHP版本服务器上报错的问题?

错误提示 修改方法
Redefining already defined constructor for class 确保类中的构造函数(__construct)在同名函数之前定义,function __construct() { ... } function paypal() { ... }

六、Parse error: syntax error, unexpected ';'

错误提示 修改方法
syntax error, unexpected ';' 检查代码中的语法错误,确保每个语句后面都有分号,并且没有多余的分号

权限问题

错误提示 修改方法
failed to open stream: No such file or directorycan't write 更改相关文件或目录的权限,例如将权限改为755

相关问题与解答

1.为什么会出现“Strict Standards: mktime(): You should be using the time() function instead”的错误?

这是因为在PHP的新版本中,mktime()函数不带参数被调用时会触发一个严格标准警告,建议使用time()函数来代替mktime()函数,以避免这个错误。

如何解决ECSHOP模板在高PHP版本服务器上报错的问题?

2.如何修复“Strict Standards: Only variables should be passed by reference”的错误?

这个错误通常是由于在数组操作中使用了非变量传递引用,解决方法是将array_shift(explode(' ', $tag))替换为先将字符串用explode函数分割成数组,然后使用array_shift函数获取第一个元素,可以将$tag_sel = array_shift(explode(' ', $tag));替换为$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);

到此,以上就是小编对于“关于ECSHOP模板架设的服务器php版本过高报错的解决方法集合”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!