ecshop页面列表页详情页出现乱码问题解决方法汇总

作者: unvs 分类: PHP 发布时间: 2014-12-14 11:36 ė18,216 views 62条评论

ecshop程序有时无故出现554fcae493e564ee0dc75bdf2ebf94ca错误代码,比如:

554fcae493e564ee0dc75bdf2ebf94camember_info|a:1:{s:4:"name";s:11:"member_info";}554fcae493e564ee0dc75bdf2ebf94ca

554fcae493e564ee0dc75bdf2ebf94cacart_info|a:1:{s:4:"name";s:9:"cart_info";}554fcae493e564ee0dc75bdf2ebf94ca

一、首先清下后台缓存,看是否还会出现错误;

二、页面有程序方面错误,这是修改而导致的(只要有程序错误代码先解决掉、再清空缓存)。

三、2.7.3版本后,模板不支持php写法,而部分模板里(京东模板)带有diyfile.php处理php代码文件,所以有关php代码都无法编译加载出来。
解决办法:
打开includes/cls_template.php文件,找到fetch_str方法,改为如下代码:

function fetch_str($source)
{
if (!defined('ECS_ADMIN'))
{
$source = $this->smarty_prefilter_preCompile($source);
}

/*if(preg_match_all('~(<\?(?:\w+|=)?|\?>|language\s*=\s*[\"\']?php[\"\']?)~is', $source, $sp_match))
{
$sp_match[1] = array_unique($sp_match[1]);
for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++)
{
$source = str_replace($sp_match[1][$curr_sp],'%%%SMARTYSP'.$curr_sp.'%%%',$source);
}
for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++)
{
$source= str_replace('%%%SMARTYSP'.$curr_sp.'%%%', ''."\n", $source);
}
}*/
return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);
}

四、更早版本的ecshop出现这种问题
解决方法:同样打开includes/cls_template.php文件,注释如下代码:

$source = preg_replace("/<\?[^><]+\?>/i", "", $source);

五、如果不是554fcae493e564ee0dc75bdf2ebf94ca错误提示,出现乱码那就是编码问题,需转换相应文件编码。

本博文章基本上属于原创或收集整理,都是心血结晶。
欢迎转载分享,转载请注明出处,谢谢!
本文地址:ecshop页面列表页详情页出现乱码问题解决方法汇总

2 条评论

  1. i博客 2015 年 1 月 15 日 下午 7:01 回复

    来这里交流学习,网站不错我也是广东这边的希望可以和你成为朋友谢谢!

    1. unvs 2015 年 5 月 22 日 上午 11:28 回复

      感谢您的来访与支持,欢迎交流学习。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ɣ回顶部