注意:unserialize():偏移0处的错误5472字节错误

时间:2016-05-12 13:07:24

标签: php mysql

我收到此错误:注意:unserialize():第32行/home3/trisoni2/public_html/ohappy/admin/model/extension/module.php中偏移量为0的5472字节错误

我不知道可能是什么原因。在PHP我真的不明白,所以我给了一段32字符串的代码

if ($query->row) {
        if( $query->row['code'] == 'dimastas' ){  
            return $setting =  unserialize($query->row['setting']); /*<--- 32 string*/
        }
        return json_decode($query->row['setting'], true);
    } else {
        return array(); 
    }
}

最初,数据库中的条目如下所示:

a:5:{s:6:"status";s:1:"1";s:4:"name";s:7:"Default";s:5:"class";s:0:"";s:6:"layout";s:4377:"[{"cls":"full-col full-slider","bgcolor":"","bgimage":"","fullwidth":"1","parallax":"0","sfxcls":null,"padding":"","margin":"","iposition":null,"iattachment":null,"cols":

但是经过Opencart CMS提供的简单修改后,数据库中的条目如下:

{"status":"1","name":"Default","class":"","layout":"[{\"cls\":\"full-col full-slider\",\"bgcolor\":\"\",\"bgimage\":\"\",\"fullwidth\":\"1\",\"parallax\":\"0\",\"sfxcls\":null,\"padding\":\"\",\"margin\":\"\",\"iposition\":null,\"iattachment\":null,\"cols\":

毕竟我得到了错误: 注意:unserialize():第32行/home3/trisoni2/public_html/ohappy/admin/model/extension/module.php中偏移量为0的5472字节错误

可能是错误的原因以及如何解决?请帮忙

1 个答案:

答案 0 :(得分:1)

这里似乎不太合适: 第二个是JSON ,但第一个是序列化对象* 您可以从他们的签名中辨别出来。 ..请注意,第一个具有前缀,如:,s:,i: a:表示在其后面的卷曲大括号中包含的所有内容都是数组。 s 代表字符串, i 代表整数。一旦你弄乱了这个结构,你就会遇到一个问题....如果你将值恢复到第一个,那么一切都会再次正常工作......

我只是将第二个(即JSON)转换回PHP序列化数据。所以现在,尝试用这个值替换Table-Field的内容 - 就像它在这里一样:

O:8:"stdClass":4:{s:6:"status";s:1:"1";s:4:"name";s:7:"Default";s:5:"class";s:0:"";s:6:"layout";a:1:{i:0;O:8:"stdClass":11:{s:3:"cls";s:20:"full-col full-slider";s:7:"bgcolor";s:0:"";s:7:"bgimage";s:0:"";s:9:"fullwidth";s:1:"1";s:8:"parallax";s:1:"0";s:6:"sfxcls";N;s:7:"padding";s:0:"";s:6:"margin";s:0:"";s:9:"iposition";N;s:11:"iattachment";N;s:4:"cols";N;}}}

警告:在执行此操作之前,请确保您已在某处备份了Field ...虽然它仍然可以正常工作......但是以防万一......