如何在PHP中访问POST数据?

26 php post http

我需要编写一个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>
Run Code Online (Sandbox Code Playgroud)

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

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

phi*_*hag 38

阅读php://input.例如,您可以使用:

$rawdata = file_get_contents('php://input');
Run Code Online (Sandbox Code Playgroud)

要么

$rootNode = simplexml_load_file('php://input');
Run Code Online (Sandbox Code Playgroud)

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