【PHP基礎】PHP接口調用與json數據處理

一、接口調用方法(發送get/post請求,獲取遠程文件響應的json格式內容)

1.一、file_get_contents()函數(沒法訪問https的遠程文件)
做用:獲取整個文件內容(整個文件讀入一個字符串中),包括遠程文件。
$url = "http://www.baidu.com";
file_get_contents($url);
 
1.二、curl方法(對各類URL遠程文件支持較好)
curl是利用URL語法在命令行方式下工做的開源文件傳輸工具。
//GET請求
public function httpGet($url) {  
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_TIMEOUT, 500);
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
      curl_setopt($curl, CURLOPT_URL, $url);
      $res = curl_exec($curl);
      curl_close($curl);
      return $res;
 }

//post請求。$data以數組形式傳入
function curl_post($url, $data)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $date);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    return $result;
}

 

二、json數據和數組數據的相互轉換

json用於傳輸數據,訪問處理數據一般須要先把json轉換成關聯數組的形式ajax

//json格式數據例子( 最外層也能夠採用中括號[] )

{"result":null,"msg":"發送成功","code":200,"status":1,"isSucc":true}
//json格式數據-->數組(關聯數組)格式數據,$content表示json格式數據

$re = json_decode($content, true);    //不加true的話解析出來是一個對象
var_dump($re);                     //數組只能用var_dump和print_f()函數顯示出來
//數組(關聯數組)格式數據-->json格式數據

   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);

 

三、ajax直接顯示json數據(返回數據爲json格式)

後臺返回json格式數據:
{"result":null,"msg":"發送成功","code":200,"status":0,"isSucc":true}
一、直接訪問(ajax中聲明接收數據類型爲json)。能夠用data["status"]或者data.status訪問。
 (if (data["status"] == 0) {        // 也能夠寫成: if(data.status == 0){ .... } 
        ......
 },"json")               // 括號外層是ajax語句
二、解析後再訪問(json數據解析生成js對象再訪問)
var data = JSON.parse(date);     // 也能夠寫成: var data = $.parsejson(data); 
if(data.status == 0){         //  if (data["status"] == 0){ .... }
        ......
 }
相關文章
相關標籤/搜索