站長資訊網
        最全最豐富的資訊網站

        直擊php中unserialize返回false的解決方法

        直擊php中unserialize返回false的解決方法

        本文實例講述了php中unserialize返回false的解決方法,分享給大家供大家參考。具體方法如下:

        php 提供serialize(序列化) 與unserialize(反序列化)方法。
        使用serialize序列化后,再使用unserialize反序列化就可以獲取原來的數據。

        先來看看如下程序實例:

        <?php  $arr = array(    'name' => 'fdipzone',    'gender' => 'male'  );    $str = serialize($arr); //序列化  echo 'serialize str:'.$str."rnrn";    $content = unserialize($str); // 反序列化  echo "unserialize str:rn";  var_dump($content);  ?>

        輸出:

        serialize str:a:2:{s:4:"name";s:8:"fdipzone";s:6:"gender";s:4:"male";}    unserialize str:  array(2) {   ["name"]=>   string(8) "fdipzone"   ["gender"]=>   string(4) "male"  }

        但下面這個例子反序列化會返回false

        <?php  $str = 'a:9:{s:4:"time";i:1405306402;s:4:"name";s:6:"新晨";s:5:"url";s:1:"-";s:4:"word";s:1:"-";s:5:"rpage";s:29:"http://www.baidu.com/test.html";s:5:"cpage";s:1:"-";s:2:"ip";s:15:"117.151.180.150";s:7:"ip_city";s:31:"中國北京市 北京市移動";s:4:"miao";s:1:"5";}';  var_dump(unserialize($str)); // bool(false)  ?>

        檢查序列化后的字符串,發現出問題是在兩處地方:

        s:5:"url"
        s:29:"http://www.baidu.com/test.html"
        這兩處應為
        s:3:"url"
        s:30:"http://www.baidu.com/test.html"

        出現這種問題的原因是序列化數據時的編碼與反序列化時的編碼不一致導致,例如數據庫是latin1和UTF-8字符長度不一樣。
        另外有可能出問題的還有單雙引號,ascii字符"

        主站蜘蛛池模板: 热99re久久国超精品首页| 蜜桃麻豆www久久国产精品 | 国产成人精品综合网站| 欧美精品成人3d在线| 911亚洲精品国产自产| 国产精品无码专区| 亚洲av永久无码精品秋霞电影影院| 国内精品伊人久久久久影院对白| 麻豆精品久久精品色综合| 精品国产v无码大片在线观看| 中文字幕无码久久精品青草| 久久久人妻精品无码一区| 国产精品午夜国产小视频| 色播精品免费小视频| 国产精品福利在线观看| 国产精品无码无需播放器| 久久亚洲私人国产精品vA| 亚洲欧美国产∧v精品综合网| 久久国产成人精品国产成人亚洲| 国产精品videossex白浆| 亚洲国产精品lv| 久久精品免费一区二区三区| 成人午夜视频精品一区| 少妇人妻偷人精品无码视频新浪| 无码人妻精品一区二区蜜桃百度 | 久久久久人妻一区精品| 精品日韩欧美国产| 精品亚洲欧美中文字幕在线看| 国产精品hd免费观看| 国产高清精品在线| 98精品国产自产在线XXXX| 91精品婷婷国产综合久久| 一区二区三区日韩精品| 伊人久久精品线影院| 91午夜精品亚洲一区二区三区| 四虎国产精品永久地址99新强 | 久久精品女人天堂AV麻| 精品国产一级在线观看| 久久中文精品无码中文字幕| 少妇亚洲免费精品| 一级A毛片免费观看久久精品|