欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

那么一定是客戶端提交的個(gè)別字符影響了json的格式,可以使用JS進(jìn)行過(guò)濾,可以解決一般問(wèn)題,主要過(guò)濾回車,空格,html標(biāo)簽。

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

/*
* 過(guò)濾函數(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;
}

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

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

1.$str只能UTF-8編碼

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

3.元素不能使用單引號(hào)

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

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

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

在線JSON代碼檢驗(yàn)、檢驗(yàn)、美化、格式化工具:
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語(yǔ)言風(fēng)格/HTML/CSS/json代碼格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json

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

相關(guān)文章

  • php.ini中的php-5.2.0配置指令詳解

    php.ini中的php-5.2.0配置指令詳解

    簡(jiǎn)介本文并非是對(duì)英文版 php.ini 的簡(jiǎn)單翻譯,而是參考了眾多資料以后,結(jié)合自己的理解, 在原有 php.ini 基礎(chǔ)上增加了一些實(shí)用模塊的配置說(shuō)明,同時(shí)對(duì)文件內(nèi)容的安排進(jìn)行了調(diào)整。 由于作者不喜歡 no-free 的玩意兒,所以刪除了除 MySQL 和 PostgreSQL 以外的其他數(shù)據(jù)庫(kù)模塊配置選項(xiàng)。
    2008-03-03
  • Laravel中正確地返回HTTP狀態(tài)碼方法示例

    Laravel中正確地返回HTTP狀態(tài)碼方法示例

    這篇文章主要給大家介紹了如何在Laravel中正確地返回HTTP狀態(tài)碼的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 最新評(píng)論