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

前端之家收集整理的这篇文章主要介绍了如何在服务器端访问PHP REST API PUT数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
– 答案(帮助和作业后) –
我是新的,所以我不能回答我自己的问题,直到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()的数据.

所以这是一切如何工作.

数据被放入正常的数组中.
> http_build_query()将它转换成一个很好的几乎GET像字符串.
> file_get_contents()将其从客户端传输到服务器.
> parse_str()然后将其转回到一个数组.

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

– 题 –

我刚刚开始使用REST API,并且变得非常困惑.

这是我的PHP cRUL客户端看起来像一个PUT.

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

现在,当我看着服务器,我的$_SERVER [‘REQUEST_METHOD’]显示PUT,但我的问题是如何获取使用CURLOPT_POSTFIELDS发送的$数据.

所有我需要做的是将一个PUT请求发送的$数据放到下一行.喜欢

$value = $data['curl_data'];

我对这个话题感到非常混乱,令我头痛.在PHP客户端看起来好像很简单,但是没有人能够为PHP服务器端工作.

感谢任何帮助!

PHP Manual

PUT数据来自stdin:

$putdatafp = fopen(“PHP:// input”,“r”);

使用示例

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

猜你在找的PHP相关文章