Как получить доступ к данным 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-коде?
Ответы
Ответ 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
.
Ответ 2
Попробуйте $HTTP_RAW_POST_DATA
variable или php://input
stream.
Ответ 3
http://us.php.net/manual/en/reserved.variables.httprawpostdata.php
$HTTP_RAW_POST_DATA должен быть доступен, если тип содержимого запроса не был multipart/form-datap >
Ответ 4
$HTTP_RAW_POST_DATA
или
php://ввод
Ответ 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:/