php url鏈接地址傳數組方法 json_decode解析數組失敗 經過url鏈接的json數組解析出錯的解決方法 (原)


先說出現的問題:

請求一個接口(例如  http://www.a.com/getmes.php)需要傳一個數組參數 param ,值為 數組 array(0=>'劉師傅',1=>'17600385909')

剛開始我寫的直接json_encode()后放url后面,如下

//請求方法示例代碼:
$url = 'http://www.a.com/getmes.php?t=1';
$param = array(0=>'劉師傅',1=>'17600385909');
$url = $url.'&param='.json_encode($param);
$this->curl_get($url);

//接口地址獲取數據代碼
$param = $_GET['param'];
$mes = json_decode($param,true);
print_r($mes);

接口地址代碼始終打印不出來接收到的param數組

==================================解決方法====================================================

==================================解決方法====================================================

1.數組直接分開寫,就不存在要json的情況了

//請求方法示例代碼:
$url = 'http://www.a.com/getmes.php?t=1';
$param = array(0=>'劉師傅',1=>'17600385909');
for ($i=0; $i < count($param); $i++) { 
       $url .= '&param[]='.$param[$i];
}
$this->curl_get($url);

//接口地址獲取數據代碼
$parm = $_GET['param'];
$mes = json_decode($param);
print_r($mes);

2.就是解決為什么json_decode出錯的問題.

  因為json_encode數組的時候默認會將數組里面加''\''轉義符,也就是他的存在,json數據被當成了string字符串,所以才導致json_decode失敗. 解決辦法就是接收到json數據后,先去掉轉義符"\"再json_decode

 

//請求方法示例代碼:
$url = 'http://www.a.com/getmes.php?t=1';
$param = array(0=>'劉師傅',1=>'17600385909');
$url = $url.'&param='.json_encode($param);
$this->curl_get($url);

//接口地址獲取數據代碼
$parm = $_GET['param'];
$mes = json_decode(stripslashes($param),true);
print_r($mes);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM