Curl没有在php中给出json响应

时间:2019-01-12 22:53:10

标签: php json api curl

我正在尝试通过curl与新闻提供网站进行api集成。我能够检索数据,但它不是json格式,因此很难在我的门户上显示该数据。

下面是我正在使用的代码。

请有人帮助

  

curl.php

<?php

function file_get_contents_curl() 
 {
    $url='https://newsapi.org/v2/top-headlines?'.
      'country=us&'.
      'apiKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
    $content = false;
    $headers = array('Content-Type:application/json');


    if (function_exists('curl_init')) {
        $curl = curl_init();

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

        curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);

        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);

        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($curl, CURLOPT_MAXREDIRS, 5);
        $content = curl_exec($curl);
        curl_close($curl);
    }

    return $content;
}

$result=file_get_contents_curl();

echo $result;

?>

以下是我回显从上面的代码收到的响应时得到的结果

{“状态”:“确定”,“合计结果”:36,“文章”:[{“源”:{“ id”:空,“名称”:“ Tmz.com”},“作者”: “ TMZ Staff”,“ title”:“'90天未婚夫'Colt Johnson在战斗和逮捕后向拉里萨(Larissa)提出离婚-TMZ”,“描述”:“科尔特在“ 90天未婚夫”之后已向拉里萨(Larissa)离婚“夫妻的离奇战斗和她的逮捕。”,“ url”:“ https://www.tmz.com/2019/01/12/90-day-fiance-colt-johnson-files-divorce-larissa-dos-santos-lima-bloody-fight-arrest/”,“ urlToImage”:“ https://images.tmz.com/2019/01/12/0112-larissa-johnson-colt-johnson-instagram-01-1200x630.jpg”,“ publishedAt”:“ 2019-01-12T20:55:00Z”, “ content”:null},{“ source”:{“ id”:null,“ name”:“ Kstp.com”},“ author”:“ The Associated Press”,“ title”:“ Granddad:威斯康星州女孩有与可疑绑架者没有联系-KSTP”,“描述”:“威斯康星州西北女孩的祖父,当局称在一次家庭入侵期间被绑架,致使父母丧生,周六说,该家庭与犯罪嫌疑人没有任何关系,也没有了解为什么他以她为目标,从而加深了奥秘……”,“ url”:“ https://kstp.com/news/granddad-wisconsin-girl-has-no-link-to-suspected-kidnapper-/5207911/”,“ urlToImage”:“ https://kstp.com/kstpImages/repository/2019-01/800JakeThomasPattersonSuspectNewser2.jpeg”,“ publishedAt”:“ 2019-01-12T20:53:05Z “,” content“:”周四,贾梅(Jayme)在批准时失踪了近三个月在北部偏僻的小树林小镇戈登附近找一个陌生人,恳求帮助。几分钟后,警察根据Jayme对…[+4624个字符]“},{” source“:{” id“:null,” name“:” Vox.com“},”的描述逮捕了21岁的Jake Thomas Patterson。作者”:“ Amanda Sakuma”,“标题”:“ Megyn Kelly与NBC结束分众-Vox.com”,“描述”:“据报道,脱口秀主持人想成为下一任奥普拉。当她离开NBC并留下令人不适的记录时,似乎不太可能发生。“,” url“:” https://www.vox.com/2019/1/12/18179908/megyn-kelly-nbc-split-oprah“,” urlToImage“:” https://cdn.vox-cdn.com/thumbor/WiGGM5Fmnb_o5PN4zrXsPHnQRx4=/0x215:3000x1786/fit-in/1200x630/cdn.vox-cdn.com/uploads/chorus_asset/file/13321989/Kelly.jpg“,” publishedAt“:” 2019 -01-12T19:57:29Z“,” content“:”梅根·凯利(Megyn Kelly)与NBC正式分手,提醒了她与她的6900万美元合同,但她没有成为下一个脱口秀电视女王的愿望。双方解决了分歧,梅根·凯利(Megyn Kelly)不再是一个雇员……[+3732个字符]“},

1 个答案:

答案 0 :(得分:1)

使用json_decode将您收到的json转换为数组!

$result = json_decode($result);
print_r($result);