Подтвердить что ты не робот

Как получить доступ к данным POST в PHP?

Мне нужно написать страницу PHP, которая примет документ XML, отправленный по запросу POST, например:

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-документ.

Как я могу получить доступ к этому XML в моем PHP-коде?

4b9b3361

Ответ 1

Читайте из php://input. Например, вы можете использовать:

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

или

$rootNode = simplexml_load_file('php://input');

Альтернатива, используя $HTTP_RAW_POST_DATA, тоже работает, но она медленнее и нуждается в конфигурации PHP always_populate_raw_post_data.

Ответ 5

Вероятно, вы захотите использовать ввод PHP. Что-то вроде

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

Ответ 6

Любой из них будет работать:

$HTTP_RAW_POST_DATA variable or the php://input stream.

Однако для

$HTTP_RAW_POST_DATA variable

вам может потребоваться изменить параметр .ini в файле конфигурации

Ответ 7

Если вы используете print_r ($ _ POST); вы сможете увидеть, что у вас есть. Если я чего-то не хватает... Изменить: nvm, totaly забыли о Raw Data:/