1. 程式人生 > >處理從第三方獲取的php資料介面,將其輸出純json格式

處理從第三方獲取的php資料介面,將其輸出純json格式

昨天找了很多獲取介面資料的網站,今天想要用用這些介面,結果發現不會用,主要是返回的資料格式不會用,好心塞呀

像我這種php小白,搗鼓了很久很久,才把它搞懂,必須記下來希望當您遇到同樣問題的時候可以節約一點時間吧

利用第三方提供的php程式碼,是下面這樣的

<?php
$method = "GET";
// 請求示例 url 預設請求引數已經做URL編碼
$url = "http://api01.bitspaceman.com:8000/news/qihoo?apikey={您自己的apikey}&kw=%E7%99%BD&site=qq.com";
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
var_dump(curl_exec($curl));
?>

然後把{您自己的apikey}替換成它給你的apikey(切記{}也要去掉哦),然後確實可以輸出json資料,但你會發現除了json資料,頭部還有很多的程式碼,如下示例

string(14276) "HTTP/1.1 200 OK Date: Thu, 14 Jun 2018 12:24:16 GMT Content-Type: application/json; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive X-RateLimit-Limit-day: 86400 X-RateLimit-Remaining-day: 86353 X-RateLimit-Limit-minute: 20 X-RateLimit-Remaining-minute: 19 X-RateLimit-Limit-second: 1 X-RateLimit-Remaining-second: 0 X-RateLimit-Limit-month: 2678400 X-RateLimit-Remaining-month: 2678353 Server: nginx src_api: 120.77.98.119:20010 Status_code: 000000 Content-Encoding: gzip X-Kong-Upstream-Latency: 327 X-Kong-Proxy-Latency: 0 Via: kong/0.10.2 

那如果我們想要把這些程式碼給去掉,就要對PHP程式碼進行修改,所以上面的程式碼修改完之後就是:

<?php
$method = "GET";
// 請求示例 url 預設請求引數已經做URL編碼
$url = "http://api01.bitspaceman.com:8000/news/qihoo?apikey={您自己的apikey程式碼}&kw=%E7%99%BD&site=qq.com";
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
$content = curl_exec($curl);
 $header_size = curl_getinfo($curl,CURLINFO_HEADER_SIZE);
 $bodys = substr($content,$header_size);
echo '<pre>';
echo($bodys);
?>

因為我是PHP小白,所以並不打算對它做什麼講解,那主要修改的程式碼,如下:

$content = curl_exec($curl);
 $header_size = curl_getinfo($curl,CURLINFO_HEADER_SIZE);
 $bodys = substr($content,$header_size);
echo '<pre>';
echo($bodys);
然後,新增完之後,輸出的結果就是純json資料嘍,嗯,希望如果您的情況和我一樣的話,能夠幫到您哦,如果遇到了其他的問題,也可以留言提問哦(PHP知識除外,現在還沒學,以後打算學)