Home >Backend Development >PHP Tutorial > 反序列化打印不了好奇怪,该怎么解决

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

WBOY
WBOYOriginal
2016-06-13 13:28:10946browse

反序列化打印不了好奇怪
$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);
转一下码,都是可以正常输出的

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn