先說出現的問題:
請求一個接口(例如 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.'¶m='.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 .= '¶m[]='.$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.'¶m='.json_encode($param); $this->curl_get($url); //接口地址獲取數據代碼 $parm = $_GET['param']; $mes = json_decode(stripslashes($param),true); print_r($mes);
