国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 朔州市| 涞水县| 铁力市| 岑巩县| 乌鲁木齐县| 高平市| 开远市| 武定县| 黑山县| 滨州市| 安多县| 汨罗市| 墨竹工卡县| 十堰市| 遂宁市| 珠海市| 濮阳市| 新兴县| 拉萨市| 德昌县| 佛山市| 安平县| 阿拉尔市| 沿河| 拉孜县| 楚雄市| 塔河县| 十堰市| 浏阳市| 汉阴县| 桃园市| 新竹市| 疏附县| 比如县| 阿尔山市| 二连浩特市| 武冈市| 隆林| 涿鹿县| 洛川县| 绍兴市|