【问题标题】:how to get JSON data from Rapid API using PHP [closed]如何使用 PHP 从 Rapid API 获取 JSON 数据 [关闭]
【发布时间】:2020-03-24 16:49:12
【问题描述】:

我尝试从 API 获取 JSON 数据,但没有运气,任何关于这件事的帮助有什么问题。这是我的代码。

    <?php
    $curl = curl_init();
    curl_setopt_array($curl, array(
    CURLOPT_URL => "https://coronavirus-monitor.p.rapidapi.com/coronavirus/latest_stat_by_country.php?country=pakistan",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
    "x-rapidapi-host: coronavirus-monitor.p.rapidapi.com",
    "x-rapidapi-key: d1a16d6185msh28b0a37babf5f15p141020jsn35571bfb92c9"),
    ));
    $response = curl_exec($curl);
   $err = curl_error($curl);
   curl_close($curl);
   if ($err) {
    echo "cURL Error #:" . $err;
    }
   else {
   echo $response->latest_stat_by_country[0]->country_name . "</br>";
   echo $response->latest_stat_by_country[0]->total_cases . "</br>";
   echo $response->latest_stat_by_country[0]->new_cases . "</br>";
   echo $response->latest_stat_by_country[0]->active_cases . "</br>";
   }

【问题讨论】:

  • 您遇到错误了吗?空洞的回应?不是 JSON 的响应?如果有错误,它在哪一行?所有这些事情对于任何能够帮助您的人都很重要。此外,您似乎在这篇文章中包含了一个私有 API 密钥。你可能应该立即撤销它并获得一个你保密的新的。

标签: php arrays json api


【解决方案1】:

您正在访问$response,就像它是一个数组一样,但它不是,它是 JSON。你需要先json_decode($response)

<?php

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://coronavirus-monitor.p.rapidapi.com/coronavirus/latest_stat_by_country.php?country=pakistan",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "x-rapidapi-host: coronavirus-monitor.p.rapidapi.com",
    "x-rapidapi-key: d1a16d6185msh28b0a37babf5f15p141020jsn35571bfb92c9"),
));
$response = curl_exec($curl);

$err = curl_error($curl);
curl_close($curl);
if ($err) {
    echo "cURL Error #:" . $err;
} else {
    // Changes made here:
    $data = json_decode($response);
    echo $data->latest_stat_by_country[0]->country_name . "</br>";
    echo $data->latest_stat_by_country[0]->total_cases . "</br>";
    echo $data->latest_stat_by_country[0]->new_cases . "</br>";
    echo $data->latest_stat_by_country[0]->active_cases . "</br>";
}

【讨论】:

  • kerbholz 谢谢
  • kerbholz 问题已解决并标记为有用
  • 谢谢,很高兴它有效
  • hello @kerbholz 有没有办法使用 php 将上述 json 数据动态填充到 html 表中,我有 199 个国家/地区
  • 当然有,但这将是另一个问题的主题
猜你喜欢
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
  • 2019-02-23
  • 1970-01-01
  • 2015-12-14
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多