Сохранить полный запрос в переменной PHP - PullRequest
1 голос
/ 04 декабря 2009

Я создаю фреймворк на PHP, и мне нужно получить полный необработанный запрос, сделанный браузером. Поэтому я хочу что-то вроде этого в переменной:

POST /lolzorz/xD HTTP/1.1\r\n
Host: localhost\r\n
User-Agent: UserAgentHere/1.0.00\r\n
Content-Type: application/xml; charset=utf-8\r\n
Content-Length: 0\r\n
\r\n
<?xml version="1.0" encoding="UTF-8"?>\r\n
<request>\r\n
<question1 param="value" />\r\n
<question2 param="value" />\r\n
<question3 param="value" />\r\n
</request>\r\n

Возможно ли это?

Информация о моем сервере:

  • Mac OS X Snow Leopard (10.6.2)
  • Apache2
  • PHP 5 работает как модуль

Спасибо

Ответы [ 4 ]

2 голосов
/ 04 декабря 2009

Я не думаю, что php сможет получить часть заголовков необработанного входного потока. (getallheaders () / apache _request_headers () уже упоминалось).
Но, по крайней мере, вы можете прочитать исходные данные через поток ввода php: // .

0 голосов
/ 04 декабря 2009

Полагаю, вам нужно вручную собрать это, используя переменные $ _SERVER и содержимое

print_r(getallheaders());
0 голосов
/ 04 декабря 2009

Вы можете получить заголовки запроса с помощью apache_request_headers

0 голосов
/ 04 декабря 2009

Если вы имеете в виду заголовки сервера с другой веб-страницы, то используйте функцию get_headers().

Если вы имеете в виду заголовки из пользовательского запроса страницы, вы можете использовать функцию apache_request_headers(). Хотя, как говорит Кон, предпочтительный метод делает это:

<?php $postdata = file_get_contents("php://input"); ?>

Вы должны убедиться, что в вашем php.ini включена опция always_populate_raw_post_data.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...