Как получить доступ к данным 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-коде?

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

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

или

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

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

Попробуйте переменную $HTTP_RAW_POST_DATA или поток php://input .

http://us.php.net/manual/en/reserved.variables.httprawpostdata.php

$ HTTP_RAW_POST_DATA должен быть доступен при условии, что тип содержимого запроса не был multipart / form-data

$ HTTP_RAW_POST_DATA

или

PHP: // ввод

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

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

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

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

Однако для

 $HTTP_RAW_POST_DATA variable 

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

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