PHP的unserialize返回false

2022-10-11 20:56:11 162 0
魁首哥

问题描述:如下是我序列化数组之后的数据,但是取出来之后,反序列化不了。

$a = ‘a:2:{i:1;a:5:{s:8:”pic_sort”;i:2;s:9:”pic_check”;b:1;s:10:”pic_select”;i:56;s:8:”pic_path”;s:1:”ergregerg”;s:8:”pic_link”;s:2:”wesaddasd”;}i:2;a:5:{s:8:”pic_sort”;i:2;s:9:”pic_check”;b:0;s:10:”pic_select”;i:57;s:8:”pic_path”;s:10:”4444″;s:8:”pic_link”;s:14:”#34;;}}’;

PHP的unserialize返回false

print_r(unserialize($a));

问题原因:应该是从数据库中取出的 编码 和页面的编码不一致造成的。

解决方案:自定义如下的 函数调用 就可以了

print_r(mb_unserialize($a));

function mb_unserialize($serial_str) {

$out = preg_replace(‘!s:(\d+):”(.*?)”;!se’, “‘s:’.strlen(‘$2′).’:\”$2\”;'”, $serial_str );

return unserialize($out);

}

收藏
分享
海报
0 条评论
162
上一篇:什么叫祈使句(否定祈使句的结构) 下一篇:PHP内置Web服务器的使用(专用于开发调试和命令行)

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码