程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 如何正確解決PHP缺少JSON包問題

如何正確解決PHP缺少JSON包問題

編輯:關於PHP編程

這一問題的替代辦法就是重寫PHP json 的json_decode 和 json_encode方法。

這兩個PHP缺少JSON包的解決方法主要就是把數組,字符串,或者對象 轉換成 json格式的數據(特殊的一種結構體格式) 。首先需要的是json_encode方法, 此方法 主要將 數組,字符串,對象等轉換成json格式。解決此問題的方法:

a. 簡單版:

直接針對自己的問題需要(自己只需要將簡單的數組進行操作),可以直接將此數組進行拼串。

b。完善的 encode方法:

解決PHP缺少JSON包的問題的簡單方法就是 利用別人以完成的開源代碼:

首先想到 zend framework。 拿來 zf_json 包中的 Decoder.PHP, 和 Encoder.PHP。 Decoder.PHP其實只要將其中某個protect方法的 protect去掉就行。 具體操作忘了,讀者自行調試來解決。改寫好Decoder 類後,調用如下:

  1. $filepath = $_SERVER['DOCUMENT_ROOT'];  
  2. include $filepath.'/inc/json/Encoder.PHP';   
  3. $encoder = new Zend_Json_Encoder(false);  
  4. $json = $encoder ->encode($result);   
  5. header("X-JSON: $json"); 

json_decode方法同上,如果是PHP使用。

由於很多使用json的地方還是在ajax調用中, 所以一些ajax '框架' 提供了decode方法來解決PHP缺少JSON包這一問題:

比如在prototype中, 如果PHP頁面包含了prototype.js, 那麼就可以直接來調用 function(transport, json) { 。。操作} 在其中取json數據 就是 json.a , json.b 等了。

除了PHP缺少JSON包這一問題的出現外,可能遇到問題,編碼。

zend framework返回的漢字編碼估計不大對應(不是說它不是utf-8)我的頁面編碼(utf-8),因此會有問題出現。因此對於某些驗證返回的報錯信息(漢字)會有影響。在這裡的替代方法就是使用傳統的接口返回數字代碼形式(通信網關經常采用的方法),比如返回 json.code 有 0,1,2,3等多種可能。則在js端處理時, 0表示成功,1表示非法的客戶端數據,等等。 問題得到完美解決。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved