反序列化打印不了好奇怪

高级网吧管理员 2012-06-07 11:49:15
<?php
$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:"<img src="/images/dede.gif"/>";s:6:"answer";s:24:"织梦内容管理系统";}}';

$safefaqs = unserialize($safe_faqs);

print_r($safefaqs);
?>
页面就是空白,为什么啊,求指点下
...全文
137 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
l12ab 2012-06-08
  • 打赏
  • 举报
回复
问题在这里吧 s:29:"<img src="/images/dede.gif"/>";
内容里的双引号改成单引号或者转义
xuzuning 2012-06-08
  • 打赏
  • 举报
回复
解决此类问题的要点在于:知道序列化串是如何组成的

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

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

你把程序另存为 utf-8 编码的,或 $safe_faqs = iconv('gbk', 'utf-8', $safe_faqs);
转一下码,都是可以正常输出的
yishiwucheng 2012-06-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

LZ在反序列号之前先用stripslashes()这个试试
不知道是不是PHP自动给加了\这个符号了
[/Quote]

没仔细看,说错了
应该是先用这个addslashes()这个,先加个\再反序列化
先不用中文试试
yishiwucheng 2012-06-08
  • 打赏
  • 举报
回复
再反序列化之前用stripslashes()这个试试
有可能是php自动加了\这个符号呢
yishiwucheng 2012-06-08
  • 打赏
  • 举报
回复
LZ在反序列号之前先用stripslashes()这个试试
不知道是不是PHP自动给加了\这个符号了
初学额 2012-06-08
  • 打赏
  • 举报
回复
应该是转换一下编码就可以了,试一下吧
l12ab 2012-06-08
  • 打赏
  • 举报
回复
对了 文件UTF8编码,中文要转换吧%XX%XX%XX这样的
  • 打赏
  • 举报
回复
谢谢各位老手,转换成utf-8 就ok 了 ,哈哈 谢谢各位了
黄袍披身 2012-06-08
  • 打赏
  • 举报
回复
将文件编码修改成UTF-8即可.
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
问题在这里吧 s:29:"<img src="/images/dede.gif"/>";
内容里的双引号改成单引号或者转义
[/Quote]
依旧不行 我在织梦里面直接打印的话 就可以 真是怪事啊!!

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧