最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php提示Notice:unserialize()[function.unserialize]:Error错误解决办法
时间:2022-06-24 23:15:53 编辑:袖梨 来源:一聚教程网
出现这个错误,可能会有几种原因,网上搜索的答案基本也是比较有针对性的一方面,关键在如何去寻找原因,并解决它。
分析一:在数据进行存储并反序列化时编码问题出错
这个原因是很常见的,比方,原本是以GBK编码进行存储,然后是UTF-8编码的,那么在进行unserialize()就会有问题;
解决方法一:将UTF-8编码的数据转换成GBK,PHP语言可以用iconv()函数;
分析二:重写反序列函数
一些情况可以把底层的函数重写,将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);
}
解决方法三:对字符数据进行base64_encode,然后serialize序列化,还原提取时,unserialize()再base64_decode
相关文章
- 如何交易CUDIS币?2025OKX交易所高效攻略 06-16
- 最好用全球交易所加密货币交易榜单-低手续费现货交易所币安推荐 06-16
- 《白荆回廊》玄戈培养有什么 06-16
- SQD币怎么交易-2025币安交易所新手全攻略 06-16
- 《斗罗大陆:武魂觉醒》混沌之子魂骨搭配方案推荐 06-16
- 最火全球交易所数字资产交易TOP10-去中心化比特币交易所币安推荐 06-16