繁体   English   中英

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

[英]How to get request content (body) in PHP?

我正在向内容中包含 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 ...)但它们都是空的。

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

试试这个

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

手册

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

使用file_get_contents("php://input") (手册)。

在 7.0 之前的 PHP 中,您还可以使用$HTTP_RAW_POST_DATA (取决于always_populate_raw_post_data设置)。

试试这个:

<?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"]);
}
?>

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM