PHP json_decode返回NULL緣由及解決方法

在工做中,常用json_encode和json_decode來序列化數組成字符串(從而方便在不一樣頁面傳遞數組變量)。json

可是今天發現 json_decode返回NULL,分析代碼後發現數組元素中含有[符號,而[符號在json字符串中是數組的定界符,因此會出錯。數組

爲解決這個問題,須要將原來的數組在json_encode後進行base64_encode轉換,這樣就不會有問題了,可是base64_encode後字符串長度太大,因此還須要和gzcompress一塊兒使用。函數

爲方便,作成自定義函數:code

//序列化數組爲字符串
function myArr_serialize($arr){
   return base64_encode(gzcompress(json_encode($arr)));
}
//反序列化字符串爲數組
function myArr_unserialize($str)
{
	return json_decode(gzuncompress(base64_decode($str)));
}
相關文章
相關標籤/搜索