如何在PHP中访问POST数据?

时间:2009-03-19 21:27:18

标签: php http post

我需要编写一个PHP页面,它接受通过POST请求发送的XML文档,如下所示:

POST /mypage.php HTTP/1.1
Host: myhost.com
Content-Type: application/xml
Content-Length: ...

<?xml version="1.0" encoding="utf-8"?>
<data>
 ...
</data>

这不是某些HTML表单中的数据,只是一个普通的XML文档。

如何在PHP代码中访问此XML?

7 个答案:

答案 0 :(得分:38)

php://input读取。例如,您可以使用:

$rawdata = file_get_contents('php://input');

$rootNode = simplexml_load_file('php://input');

使用$HTTP_RAW_POST_DATA的替代方案也适用 - 但速度较慢,需要PHP配置always_populate_raw_post_data

答案 1 :(得分:5)

答案 2 :(得分:2)

http://us.php.net/manual/en/reserved.variables.httprawpostdata.php

假设请求的内容类型不是multipart / form-data,

$ HTTP_RAW_POST_DATA应该可用

答案 3 :(得分:2)

答案 4 :(得分:1)

您可能想要使用PHP input。像

这样的东西
$postText = trim(file_get_contents('php://input'));

答案 5 :(得分:0)

任何这些都可行:

$HTTP_RAW_POST_DATA variable or the php://input stream.

然而,对于

$HTTP_RAW_POST_DATA variable

要运行,您可能需要更改配置文件中的.ini设置

答案 6 :(得分:-2)

如果你使用print_r($ _ POST);你将能够看到你得到了什么。除非我遗漏了什么...... 编辑:nvm,完全忘记原始数据:/