- 题 -
我刚刚开始使用的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发送。
所有我需要做的就是用一个PUT请求到下一行发送的$ DATA。 喜欢
$value = $data['curl_data'];
我看到的这个话题,它是让我头疼了这么多杂乱。 这似乎在PHP客户端那么容易的,但没有人有正在为PHP服务器端的答案。
谢谢你的帮助!
-答案(后帮助和作业) -
我是新的,所以我不能回答我的问题,直到8小时后...奇:)
好了,这里的大人们的工作后,我不得不说,我们遇到了答案。 我自责它是那么容易的,同时它是混乱。
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));
第一个变化(或以上)我不得不添加http_build_query()$左右的数据。 这发生从一个阵列到URL字符串友好我的数据。
接下来我不得不添加。
parse_str(file_get_contents('php://input'), $put);
现在我可以做这样的事情$把[“数据”。
PaulPRO上面给出的答案确实工作,以获得同样的方式file_get_contents()函数用更少的线所做的数据。 我们卡住了试图找出如何解析那里曾是我缺乏http_build_query的()我已经在其他网站上看到踢入戏数据。
所以这是它是如何工作。
- 数据放入正常阵列。
- http_build_query()把它转换成一个漂亮的几乎得到这样的字符串。
- file_get_contents()函数从客户端向服务器传输它。
- parse_str()然后把它放回阵列。
我看到很多消息关于使用PUT发送文件。 我可以看到这是如何工作的,但是从我在这整个过程中REST阅读是PUT是更新数据后是创建数据。 也许我错了。 我缺少的东西吗?