gpt4 book ai didi

php - 如何在服务器端访问 PHP REST API PUT 数据?

转载 作者:IT王子 更新时间:2023-10-29 00:18:06 25 4
gpt4 key购买 nike

-- 问题--

我刚开始使用 REST API,我感到很困惑。

这是我的 PHP cRUL 客户端对于 PUT 的样子。

case 'PUT':
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
break;

现在,当我查看服务器时,我的 $_SERVER['REQUEST_METHOD'] 显示 PUT,但我的问题是如何获取使用 CURLOPT_POSTFIELDS 发送的 $data。

我需要做的就是将与 PUT 请求一起发送的 $data 放入下一行。喜欢

$value = $data['curl_data'];

我在这个话题上看到了太多的困惑,这让我很头疼。在 php 客户端上看起来很简单,但没有人知道适用于 php 服务器端的答案。

感谢您的帮助!

-- 回答(帮助和作业后)--

我是新手,所以我要等到 8 小时后才能回答我自己的问题...奇怪 :)

好的,在与这里的优秀人士合作后,我不得不说我们找到了答案。我很自责,因为它是如此简单,同时又令人困惑。

curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));

第一个更改(上图)我必须在 $data 周围添加 http_build_query()。这将我的数据从数组转换为 url 友好字符串。

接下来我必须添加。

parse_str(file_get_contents('php://input'), $put);

现在我可以做 $put['data'] 之类的事情了。

PaulPRO 上面给出的答案确实可以像 file_get_contents() 一样以更少的行获取数据。我们在试图弄清楚如何解析数据时陷入困境,这是我在另一个站点上看到的缺少 http_build_query() 的地方。

这就是它的工作原理。

  1. 数据放入普通数组。
  2. http_build_query() 将它转换成一个几乎像 GET 一样的字符串。
  3. file_get_contents() 将其从客户端传输到服务器。
  4. parse_str() 然后将其转回数组。

我看到很多关于使用 PUT 发送文件的消息。我可以看到这是如何工作的,但从我在整个 REST 过程中读到的内容来看,PUT 是更新数据,因为 post 是创建数据。也许我错了。我错过了什么吗?

最佳答案

来自 PHP Manual :

PUT 数据来自标准输入:

$putdatafp = fopen("php://input", "r");

示例用法:

$putfp = fopen('php://input', 'r');
$putdata = '';
while($data = fread($putfp, 1024))
$putdata .= $data;
fclose($putfp);

关于php - 如何在服务器端访问 PHP REST API PUT 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6805570/

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