gpt4 book ai didi

php - cloudflare api 将 curl 转换为 php curl 并发送 CNAME 更新

转载 作者:行者123 更新时间:2023-12-03 11:23:06 27 4
gpt4 key购买 nike

这是使用 stackoverflow 上其他响应中的一些信息进行大量研究后的问答。

如何将命令行 curl 转换为 php:

$ curl -X POST "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/dns_records" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
-H "Content-Type: application/json" \
--data '{"type":"A","name":"example.com","content":"127.0.0.1","ttl":120}'

上面的 curl 是 cloudflare 的 api 手册中关于如何添加 A 记录的示例。我需要添加许多 CNAMES 或子域。 Cloudflare 没有解释如何修改上面的代码来创建 CNAMES。所以我会先解决这个问题:
$ curl -X POST "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/dns_records" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
-H "Content-Type: application/json" \
--data '{"type":"CNAME","name":"subdomain.example.com","content":"example.com","ttl":120}'

首先,我将“类型”字段更改为“CNAME”。接下来的“名称”字段是您放置子域/CNAME 的位置,或者在我的情况下是来自 foreach 的结果变量。最后在“内容”字段下放置新 CNAME 指向的域。

这在 php 中看起来像什么:
$ch = curl_init();
$headers = array(
'X-Auth-Email: user@example.com',
'X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41',
'Content-Type: application/json',
);
$data = array(
'type' => 'CNAME',
'name' => 'subdomain.example.com',
'content' => 'example.com',
'ttl' => '120',
);
$json = json_encode($data);
curl_setopt($ch, CURLOPT_URL, "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/dns_records");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_exec($ch);
curl_close($ch);

其他答案忽略了“json_encode”的需要。希望这可以帮助。

最佳答案

翻译有效 curl有效 PHP 代码的命令我推荐这个 super 有用的在线转换器:
https://incarnate.github.io/curl-to-php/

通过使用它,您的原始命令行:

curl -X POST "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/dns_records" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
-H "Content-Type: application/json" \
--data '{"type":"A","name":"example.com","content":"127.0.0.1","ttl":120}'

会自动转换为:

curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/dns_records');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"type\":\"A\",\"name\":\"example.com\",\"content\":\"127.0.0.1\",\"ttl\":120}");

$headers = array();
$headers[] = 'X-Auth-Email: user@example.com';
$headers[] = 'X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41';
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

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

关于php - cloudflare api 将 curl 转换为 php curl 并发送 CNAME 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36920023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com