首页 > Web开发 > 详细

PHP中Notice: unserialize(): Error at offset of bytes in on line 的解决方法

时间:2017-04-25 14:23:41      阅读:256      评论:0      收藏:0      [点我收藏+]

使用unserialize函数将数据储存到数据库的时候遇到了这个报错,后来发现是将gb2312转换成utf-8格式之后,每个中文的字节数从2个增加到3个之后导致了反序列化的时候判断字符长度出现了问题,所以需要使用正则表达式将序列化的数组中的表示字符长度的值重新计算一遍,代码如下:

function mb_unserialize($serial_str) {
    $out = preg_replace_callback( ‘!s:(\d+):"(.*?)";!s‘, function($r){ return ‘s:‘.strlen($r[2]).‘:"‘.$r[2].‘";‘; }, $serial_str );
    return unserialize($out);
}

  

PHP中Notice: unserialize(): Error at offset of bytes in on line 的解决方法

原文:http://www.cnblogs.com/freespider/p/6761779.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!