2012-04-27 1 views
1

Я пытаюсь получить доступ к необработанному HTTP-запросу, отправленному на сервер в PHP.PHP Получить исходный HTTP-запрос (php: // ввод не работает)

Однако все потоки ввода/вывода не работают.

Я не могу использовать php://input, и я не хочу, чтобы «интерполировать» запрос от массивов, таких как $_COOKIES, $_POST и т.д. $_POST, $_GET и другие массивы работают отлично. Я использую WAMPServer в Windows 7.

Может ли кто-нибудь помочь мне устранить проблему с потоками ввода-вывода или найти другой способ получить необработанные данные запроса?

+0

«Я не могу использовать» --- почему так? – zerkms

+0

Если 'php: // input' не работает, я сомневаюсь, что другие параметры будут работать. – xfix

+2

Их не существует. Их обрабатывают как файлы, которых нет. Например, file_exists ("php: // input") возвращает false. – user1359533

ответ

0

Из PHP документации:

PHP: // вход только для чтения поток, который позволяет считывать исходные данные из тела запроса

, который означает, что вы можете прочитать только тело данные, а не заголовки или необработанный запрос. Если вы работаете под Apache, вы можете использовать функцию apache_request_headers, чтобы получить все заголовки. Чтобы получить строку «запрос» (первая строка запроса), я полагаю, вам нужно сконфигурировать строки, которые вы можете получить из переменной $ _SERVER.

+0

Для 'Если вы работаете под Apache', прочитайте', если вы работаете как модуль Apache'. Он не работает в режиме CGI. Однако он * работает * при работе как FastCGI или как NSAPI-модуль. – DaveRandom

+1

Действительно? Таким образом, нет способа получить необработанный запрос? – user1359533