最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP處理Json字符串解碼返回NULL的解決方法

 更新時間:2014年09月01日 09:33:59   投稿:shichen2014  
這篇文章主要介紹了PHP處理Json字符串解碼返回NULL的解決方法,以一個過濾函數(shù)的實例展示了處理json返回錯誤的解決方法,并羅列了造成這一錯誤的常見情況,需要的朋友可以參考下

本文實例講述了PHP處理Json字符串解碼返回NULL的解決方法。分享給大家供大家參考之用。具體方法如下:

一般來說,php對json字符串解碼使用json_decode()函數(shù),第一個參數(shù)傳字符串,第二個參數(shù)若為true,返回array;若為false,返回object。如果返回NULL,說明報錯,輸出json_last_error(),得到的整數(shù)值對應(yīng)錯誤提示。如下圖所示:

json_last_error()比較常見的是整數(shù)4, 是json字符串在json_decode之前已不完整,所以語法錯誤。

那么一定是客戶端提交的個別字符影響了json的格式,可以使用JS進行過濾,可以解決一般問題,主要過濾回車,空格,html標簽。

實現(xiàn)代碼如下:

/*
* 過濾函數(shù)
*/
function htmlEncode(str) {
 str = str.replace(/\s+/ig, '');
 str = str.replace(/&/g, '');
 str = str.replace(/</g, '');
 str = str.replace(/>/g, '');
 str = str.replace(/(?:t| |v|r)*n/g, '<br />');
 str = str.replace(/t/g, '&nbsp; &nbsp; ');
 str = str.replace(/x22/g, '&quot;');
 str = str.replace(/x27/g, '&#39;');
 str = str.replace(/"/g, "");
 return str;
}

以上情況針對的是,你必須提交json字符串數(shù)據(jù)到服務(wù)端處理,只能在客戶端進行過濾。

其它的json_decode($str)返回NULL的一些原因:

1.$str只能UTF-8編碼

2.元素最后不能有逗號(與php的array不同)

3.元素不能使用單引號

4.元素值中間不能有空格和\n,必須替換

如果大家遇到了上述情況,可以按照以上方法處理一下。

PS:關(guān)于json操作,這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:

在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat

在線json壓縮/轉(zhuǎn)義工具:

http://tools.jb51.net/code/json_yasuo_trans

C語言風(fēng)格/HTML/CSS/json代碼格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json

希望本文所述對大家的PHP程序設(shè)計有所幫助。

相關(guān)文章

最新評論

洛扎县| 邻水| 锡林郭勒盟| 宿州市| 天祝| 浪卡子县| 集安市| 新乡县| 荣成市| 建宁县| 丽水市| 鹿泉市| 金秀| 西林县| 疏附县| 南康市| 金阳县| 盘山县| 修武县| 新邵县| 彭泽县| 普定县| 鞍山市| 沙湾县| 左贡县| 汕头市| 连平县| 湖南省| 克东县| 会宁县| 炉霍县| 眉山市| 邵东县| 铜山县| 土默特右旗| 宜兰市| 百色市| 曲周县| 金门县| 石台县| 盐亭县|