zoukankan      html  css  js  c++  java
  • Error at offset之反序列化

    关于PHP 序列化(serialize)和反序列化(unserialize)出现错误(Error at offset)的解决办法。

    首先我们分析一下为什么会出现这个错误:

    编码问题

    UTF-8:

    ANSI:

    我发现在我的机器上边编码改动只是影响了汉字的显示,对Object序列化和反序列化并没有影响,但是网络上有介绍说是因为编码的问题,这个要看大家具体的问题了。

    解决办法,既然在serialize时没有问题,那么我们就主要考虑是否是unserialize的时候出现了问题,我采取的措施如下:

    对要反序列化的数据进行一次转换,究竟转换这个函数是网络上找的,暂时不会写!

    那么既然要转换一个反序列化的对象,我们就要利用到mysqldb.class.php(例子),在mysqldb.class.php中添加如下方法:

    好的,完成这一步,就需要我们对unserialize.php反序列化读取数据进行一些修改。

    就像老师讲的那样,我们首先载入

    接下来我把,那个需要转换的字符串进行了一次初始化,为什么,如果不初始化,会提示

    因为我们unserialize.php这个页面内没有$out这个变量的原因。

    接下来

    这样我们才可以看到和老师课上演示一样的效果,至于link的问题这里暂时不做讨论,因为凌晨2点了,我想睡觉了

    下边是我serialize.php和unserialize.php2个页面的代码供大家参考。

    亲奈的同学们,我只是分享一下我复习当中遇到的问题,请不要喷我。

    我是小白,还没有资格装X,拿出来我的一点想法和大家分享。

    喜欢的可以看下,不喜欢的肯定是我写的不够好。分享快乐。

    谢谢大家。

    代码贴在下面

    向同学们

     

     

    致敬

     

     

     

     

  • 相关阅读:
    How To Mine Bitcoins 比特币挖矿
    Fear No More歌词
    我曾七次鄙视自己的灵魂
    固态硬盘降价,如何选择
    618好物推荐,路由器,手机电脑
    人机验证
    $this->request->post 和input 区别
    APP_DEBUG改成false上线之后发现:“页面错误!请稍后再试~
    Hide()方法不生效
    会声会影x7 每次安装均会提示:已安装这个产品的另一个版本
  • 原文地址:https://www.cnblogs.com/HackerArt/p/3471923.html
Copyright © 2011-2022 走看看