Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中访问POST数据?_Php_Http_Post - Fatal编程技术网

如何在PHP中访问POST数据?

如何在PHP中访问POST数据?,php,http,post,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> POST/mypage.php HTTP/1.1 主持人:myhost.

我需要编写一个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>
POST/mypage.php HTTP/1.1
主持人:myhost.com
内容类型:application/xml
内容长度:。。。
...
这不是来自某个HTML表单的数据,只是一个普通的XML文档

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

请尝试或从中读取。例如,您可以使用:

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

另一种方法是使用,也可以工作,但速度较慢,需要PHP配置。

假设请求的内容类型不是多部分/表单数据,$HTTP\u RAW\u POST\u数据应该可用,如果您使用print\r($u POST);你会看到你得到了什么。除非我错过了什么。。。 编辑:nvm,完全忘记了原始数据:///p>


您可能想使用。差不多

$postText = trim(file_get_contents('php://input'));

其中任何一项都会起作用:

$HTTP_RAW_POST_DATA variable or the php://input stream.
然而,对于

$HTTP_RAW_POST_DATA variable

若要工作,您可能需要更改配置文件中的.ini设置

$\u POST仅包含表单数据,而不是表单数据,因为它没有与之关联的变量名。例如,如果您将SOAP数据包发布到web服务,HTTP post负载将只包含XML而不附加任何变量php://input");tomhaigh:是的,我本能地避免使用这个函数,因为我记得它使用自己的子系统。事实证明,从PHP5.1开始,情况就不是这样了。
$HTTP_RAW_POST_DATA variable