处理从第三方获取的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知识除外,现在还没学,以后打算学)


猜你喜欢

转载自blog.csdn.net/lhjuejiang/article/details/80697802
今日推荐