反序列化打印不了好奇怪,该怎么解决

WBOY
发布: 2016-06-13 13:28:10
原创
900 人浏览过

反序列化打印不了好奇怪
$safe_faqs = 'a:4:{i:1;a:2:{s:8:"question";s:37:"您最喜欢的网建程序是什么?";s:6:"answer";s:7:"DedeCMS";}i:2;a:2:{s:8:"question";s:6:"1+11=?";s:6:"answer";s:2:"12";}i:3;a:2:{s:8:"question";s:59:"中国哪项体育运动最让人听着伤心,看着揪心?";s:6:"answer";s:6:"足球";}i:4;a:2:{s:8:"question";s:29:" 反序列化打印不了好奇怪,该怎么解决 ";s:6:"answer";s:24:"织梦内容管理系统";}}';

$safefaqs = unserialize($safe_faqs);

print_r($safefaqs);
?>
页面就是空白,为什么啊,求指点下

------解决方案--------------------
将文件编码修改成UTF-8即可.
------解决方案--------------------
对了 文件UTF8编码,中文要转换吧%XX%XX%XX这样的
------解决方案--------------------
LZ在反序列号之前先用stripslashes()这个试试
不知道是不是PHP自动给加了\这个符号了
------解决方案--------------------
解决此类问题的要点在于:知道序列化串是如何组成的

如 s:6:"足球";
s 表示是字符串
6 表示长度为6个字节
包括在双引号中的就是内容了
由于有长度指示,所以内容中可能出现的双引号不会产生歧义

对于这个例子,观察到内容为 足球 是两个汉字,而长度为 6,这就表示这是在 utf-8 编码环境中序列化的。

你把程序另存为 utf-8 编码的,或 $safe_faqs = iconv('gbk', 'utf-8', $safe_faqs);
转一下码,都是可以正常输出的

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!