【问题标题】:domain DNS zone data as JSON using cloudflare API使用 cloudflare API 将域 DNS 区域数据作为 JSON
【发布时间】:2020-09-11 17:15:27
【问题描述】:

我正在尝试让 cloudflare 的 API 为一个格式为 JSON 的域输出 DNS ZONE 数据,我可以获得原始数据(但是当我通过 JSON 解码对其进行解析时,我只会得到 ARRAY 这个词。

谁能告诉我哪里出了问题,这可能很明显,但我无法解决;

$headers = [ 
    'X-Auth-Email: my@email.com',
    'X-Auth-Key: jfjfh09xxxxxxxxx39nfh3',
    'Content-Type: application/json'
];

$domain = "example.com"; //domain we're changing
$ZONE_ID="h4h4hxxxxxxxxxx8e3h4"; 

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    exit('Error: ' . curl_error($ch));
}
curl_close ($ch);

$json = json_decode($result, true);

   echo $json;

我想继续使用 php cURL

【问题讨论】:

    标签: json api cloudflare php-curl


    【解决方案1】:

    您的代码没有问题,但您使用echo 来显示一个数组。 尝试使用var_dump()print_r()

    print_r($json);
    

    【讨论】:

    • 它可以显示一些东西,但我可以通过简单地将 $json 替换为 $result 来做到这一点,我需要让它像 JSON 一样格式化
    • 您的 $result 变量应为 JSON 格式。 echo $result.
    • $result 不像 JSON,它的格式像 JSON,但我不能将它加载为 JSON 我在其他地方使用了相同的代码,这很好我猜这是关于 Cloudflare 的API 有效,但找不到任何帮助我理解它的东西。
    • “加载”是什么意思?如果您想将输出用作某些 JavaScript 或 API 的提要,请确保除了 JSON 格式的字符串之外没有其他输出。您也可以考虑在输出前添加一个标题:header('Content-Type: application/json');
    • 我刚刚更改了我的代码以将其作为 PHP 数组处理以解决它,感谢您的帮助,它无法正常工作,因为 cloudflare 将信息嵌套在另一个值中,所以我只是更改了接收代码到$results->results 解决了所有问题。
    猜你喜欢
    • 2022-01-25
    • 2023-01-06
    • 2018-02-05
    • 1970-01-01
    • 2020-01-06
    • 2016-08-21
    • 2014-04-21
    • 2021-10-21
    • 1970-01-01
    相关资源
    最近更新 更多