国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php提示Notice:unserialize()[function.unserialize]:Error錯誤解決辦法

2024-05-04 21:50:27
字體:
來源:轉載
供稿:網友

出現這個錯誤,可能會有幾種原因,網上搜索的答案基本也是比較有針對性的一方面,關鍵在如何去尋找原因,并解決它。

分析一:在數據進行存儲并反序列化時編碼問題出錯

這個原因是很常見的,比方,原本是以GBK編碼進行存儲,然后是UTF-8編碼的,那么在進行unserialize()就會有問題;

解決方法一:將UTF-8編碼的數據轉換成GBK,PHP語言可以用iconv()函數;

分析二:重寫反序列函數

一些情況可以把底層的函數重寫,將gb2312轉換成utf-8格式之后,每個中文的字節數從2個增加到3個之后導致了反序列化的時候判斷字符長度出現了問題,所以需要使用正則表達式將序列化的數組中的表示字符長度的值重新計算一遍,代碼如下:

  1. function mb_unserialize($serial_str) { 
  2.     $out = preg_replace('!s:(/d+):"(.*?)";!se'"'s:'.strlen('$2').':/"$2/";'"$serial_str ); 
  3.     return unserialize($out); 

解決方法三:對字符數據進行base64_encode,然后serialize序列化,還原提取時,unserialize()再base64_decode

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瓮安县| 文化| 莎车县| 游戏| 敖汉旗| 都昌县| 永吉县| 东港市| 集安市| 温州市| 丹东市| 博乐市| 临泽县| 个旧市| 吉隆县| 南部县| 云霄县| 九龙城区| 永泰县| 汉沽区| 武隆县| 秦皇岛市| 波密县| 鄂伦春自治旗| 陈巴尔虎旗| 泽州县| 苗栗县| 正安县| 平乐县| 安龙县| 天台县| 麟游县| 全南县| 晋中市| 保康县| 嘉义县| 汶川县| 竹溪县| 咸丰县| 启东市| 扬州市|