– 答案(帮助和作业后) –
我是新的,所以我不能回答我自己的问题,直到8个小时后…奇怪:)
我是新的,所以我不能回答我自己的问题,直到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);