将CURL命令转换为PHP CURL?Cloudflare API

3

我正在尝试使用PHP CURL通过CloudFlare API,但文档示例显示为命令行CURL。

$ curl -X PUT "https://api.cloudflare.com/client/v4/zones/9a7806061c88ada191ed06f989cc3dac/dns_records/9a7806061c88ada191ed06f989cc3dac" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
-H "Content-Type: application/json" \
--data '{"id":"9a7806061c88ada191ed06f989cc3dac","type":"A","name":"example.com","content":"1.2.3.4","proxiable":true,"proxied":false,"ttl":120,"locked":false,"zone_id":"9a7806061c88ada191ed06f989cc3dac","zone_name":"example.com","created_on":"2014-01-01T05:20:00.12345Z","modified_on":"2014-01-01T05:20:00.12345Z","data":{}}'

PUT请求和POST请求一样吗?底部的数组让我感到困惑。不知道如何将其转换为PHP CURL代码。

一种可爱的方法是将命令放入shell_exec()中,不需要使用$符号。 - Drakes
1个回答

1

您需要进行一次 POST 请求,同时发送一个自定义请求。Curl 将会执行一个类似于 POST 的 PUT 请求。

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");  
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); 

然后根据需要添加标题。
curl_setopt($ch, CURLOPT_HTTPHEADER, [array of your headers]);

将数组转换为键值数组,其中键是标头名称,值是标头值。

所以$data是来自--data的数组吗? - ThatGuy343
请求中的头部数组是上述请求中标记为-H的字符串吗? - ThatGuy343
如果更容易的话,你也可以发布字符串版本吗?但显然,与数组相比,它更难编辑。 - exussum
是的,每个-H行都可以用数组中的键和值替换。 - exussum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接