网站开发 · 2025年4月23日

修复ecshop专题商品unserialize函数计算错误

ecshop 专题添加商品不显示,因为编码差异引起unserialize函数长度计算错误,以下好模板分享该解决方法

1、ecshop文件admin/topic.php

找到:
        $topic[‘data’] = addcslashes($topic[‘data’], “‘”);
        $topic[‘data’] = $json->encode(@unserialize($topic[‘data’]));
        $topic[‘data’] = addcslashes($topic[‘data’], “‘”);

替换为:

        $topic[‘data’]= preg_replace(‘!s:(\d+):”(.*?)”;!se’, “‘s:’.strlen(‘$2′).’:\”$2\”;'”, $topic[‘data’] );
        $topic[‘data’]= str_replace(“\r”, “”,$topic[‘data’]);   
        $topic[‘data’] = addcslashes($topic[‘data’], “‘”);
        $topic[‘data’] = $json->encode(@unserialize($topic[‘data’]));
        $topic[‘data’] = addcslashes($topic[‘data’], “‘”);

 

2、找到topic.php
找到:

$topic[‘data’] = addcslashes($topic[‘data’], “‘”);

替换为:

    $topic[‘data’]= preg_replace(‘!s:(\d+):”(.*?)”;!se’, “‘s:’.strlen(‘$2′).’:\”$2\”;'”, $topic[‘data’] );
    $topic[‘data’]= str_replace(“\r”, “”,$topic[‘data’]);   
    $topic[‘data’] = addcslashes($topic[‘data’], “‘”);