用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))
我就試了是有效但沒有完全解決,後來還是出現部分數據報同樣錯誤,查看後台數據可發現插入的內容變成了下圖的類似亂碼的東西
求各路大神幫忙看看什麼原因,最好能詳細點。