<?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);
?>
页面就是空白,为什么啊,求指点下

解决方案 »

  1.   

    问题在这里吧 s:29:"<img src="/images/dede.gif"/>";
    内容里的双引号改成单引号或者转义
      

  2.   

    对了 文件UTF8编码,中文要转换吧%XX%XX%XX这样的
      

  3.   

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

  4.   

    再反序列化之前用stripslashes()这个试试
    有可能是php自动加了\这个符号呢
      

  5.   


    没仔细看,说错了
    应该是先用这个addslashes()这个,先加个\再反序列化
    先不用中文试试
      

  6.   

    解决此类问题的要点在于:知道序列化串是如何组成的如 s:6:"足球";
    s 表示是字符串
    6 表示长度为6个字节
    包括在双引号中的就是内容了
    由于有长度指示,所以内容中可能出现的双引号不会产生歧义对于这个例子,观察到内容为 足球 是两个汉字,而长度为 6,这就表示这是在 utf-8 编码环境中序列化的。你把程序另存为 utf-8 编码的,或 $safe_faqs = iconv('gbk', 'utf-8', $safe_faqs);
    转一下码,都是可以正常输出的
      

  7.   

    谢谢各位老手,转换成utf-8 就ok 了 ,哈哈 谢谢各位了