php - 反序列化報錯,後台資料變成疑似亂碼?
phpcn_u1582
phpcn_u1582 2017-05-16 13:08:00
0
4
807

用serialize()序列化資料後插入資料庫,再用unserialize()反序列化出來的時候遇到了部分資料字串報錯;
報錯內容為:unserialize() [function.unserialize]: Error at offset 0 of 2544 bytes

谷歌搜尋了很多解決方法都是說用是由於編碼的問題導致的
於是在插入的地方改為base64_encode(serialize($str));
讀取的地方改為
unserialize(preg_replace('! s:(d+):"(.*?)";!se', '"s:".strlen("$2").":"$2";"', $string))

我就試了是有效但沒有完全解決,後來還是出現部分數據報同樣錯誤,查看後台數據可發現插入的內容變成了下圖的類似亂碼的東西

求各路大神幫忙看看什麼原因,最好能詳細點。

phpcn_u1582
phpcn_u1582

全部回覆(4)
PHPzhong

貼點來源資料啊,不然怎麼測試。 。

洪涛

確認一下 你這一串序列化進去的資料 有沒有問題。我之前也用serialize 但是總出問題 後來來無奈換 json_decode 了

曾经蜡笔没有小新

base64_encode("a:1") == "YTox"

那條資料是經過base64編碼的,不是亂碼。

刘奇

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!