如何在PHP中获取请求内容(正文)?

时间:2011-08-25 08:59:19

标签: php request

我正在向内容中包含XML的php服务器发送请求:

POST /index3.php HTTP/1.0
Connection: Close
Accept: application/xml
Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8"?>
<root />

我检查了全局变量(例如$_GET$_POST$_ENV$_FILES$_REQUEST ...)但它们都是空的

如何检索服务器中的内容?

3 个答案:

答案 0 :(得分:22)

试试这个

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

来自manual

  

php:// input 是一个只读流,允许您从请求正文中读取原始数据。

答案 1 :(得分:3)

它可能位于$HTTP_RAW_POST_DATA(取决于always_populate_raw_post_data设置),或者您可以通过致电file_get_contents("php://input")manual)来获取它。

答案 2 :(得分:1)

试试这个:

<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
    $xml = $GLOBALS["HTTP_RAW_POST_DATA"];
    $file = fopen("data.xml","wb");
    fwrite($file, $xml);
    fclose($file);
    echo($GLOBALS["HTTP_RAW_POST_DATA"]);
}
?>

希望这有帮助。