我需要编写一个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?
答案 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,完全忘记原始数据:/