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

使用unserialize函数将数据储存到数据库的时候遇到了这个报错,

后来发现是将gb2312转换成utf-8格式之后,

每个中文的字节数从2个增加到3个之后导致了反序列化的时候判断字符长度出现了问题,

所以需要使用正则表达式将序列化的数组中的表示字符长度的值重新计算一遍,代码如下:

 

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

[php错误]PHP中Notice: unserialize(): Error at offset of bytes in on line 的解决方法,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。