Мне нужно написать страницу 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: /