Как я могу получить доступ к необработанным данным HTTP-запроса с помощью PHP / apache? - PullRequest
16 голосов
/ 03 октября 2008

Мне было интересно, есть ли способ получить необработанные данные HTTP-запроса в PHP, работающем на Apache, который не предполагает использования каких-либо дополнительных расширений. Я видел функции HTTP в руководстве, но у меня нет возможности установить расширение в моей среде.

Хотя я могу получить доступ к информации из $ _SERVER, я хотел бы видеть необработанный запрос в точности так, как он был отправлен на сервер. PHP манипулирует именами заголовков в соответствии со своим собственным стилем ключа массива, например. Some-Test-Header становится HTTP_X_SOME_TEST_HEADER. Это не то, что мне нужно.

Ответы [ 3 ]

12 голосов
/ 03 октября 2008

Используйте следующую PHP-оболочку:

$raw_post = file_get_contents("php://input"); 
10 голосов
/ 03 октября 2008

Вы имеете в виду информацию, содержащуюся в $_SERVER?

print_r($_SERVER);

Edit:

Будет ли это делать тогда?

foreach(getallheaders() as $key=>$value)  {
    print $key.': '.$value."<br />";
}
2 голосов
/ 29 марта 2016

Попробуйте это:

  $request = $_SERVER['SERVER_PROTOCOL'] .' '. $_SERVER['REQUEST_METHOD'] .' '. $_SERVER['REQUEST_URI'] . PHP_EOL;

  foreach (getallheaders() as $key => $value) {
    $request .= trim($key) .': '. trim($value) . PHP_EOL;
  }

  $request .= PHP_EOL . file_get_contents('php://input');

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