欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

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

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

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

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

          先來看看如下程序?qū)嵗?/p>

          <?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)  ?>

          檢查序列化后的字符串,發(fā)現(xiàn)出問題是在兩處地方:

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

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