我想使用PHP为我的Web服务设置一个小的RESTful接口。问题是我查看了框架,我无法弄清楚如何在没有字段名称的情况下收到发布的数据?
例如,如果服务器将数据发布到我的服务器,我无法弄清楚如何在不需要postfield(POST变量)的情况下获取数据。传统上,对于表单,人们使用以下字段名称发送帖子数据:
curl_setopt($ch, CURLOPT_POSTFIELDS, postfield=postvalue);
我将使用这样的PHP代码:
$postvalue=$_POST[postfield];
获取postfield的价值,但由于服务器发布数据不是使用postfield而只是发送XML,如何在没有字段的情况下获取它?我如何捕获XML?那就是我迷失的地方。
答案 0 :(得分:2)
@netrox
您可以阅读任何类型的POST数据:
$data = file_get_contents('php://input');
如果您的服务接受JSON格式,您可以解码并使用它:
$json = json_decode($data);
答案 1 :(得分:0)
file_get_contents('php://input');
它为您提供客户端发送的原始主体
答案 2 :(得分:-1)
通常,您使用GET或POST将数据传递到服务器。根据您的API应该做什么,您必须选择一个。但是每个条目都应该有一个密钥,因为它更容易实现和使用。按顺序传递没有密钥的数据(以保持代码知道在哪里)容易出错。
答案 3 :(得分:-2)
每个帖子变量都有一个名字。它来自哪里并不重要。如果他们发送XML,那么XML数据有一个名称,您可以使用$ _POST来获取XML数据。获得XML数据后,您可以使用XML parser解析它。
答案 4 :(得分:-2)
<xml>
<item>
<something>value</something>
</item>
</xml>
因为你得到了xml ...我想现在从卷曲你得到文本并从你那里得到价值
$whatineed = $curlValue->item->something;