2009-07-18 3 views
3

Как получить заголовки HTTP в ответ на запрос POST, который я сделал с помощью PHP?PHP-процесс HTTP-заголовки

+0

Ну, я думаю, вы должны дать * немного * подробности. Код, то есть –

+0

У меня есть запрос POST для отправки на вторую страницу, и я хочу отправить запрос и получить заголовки ответов второй страницы в виде переменных как-то. Вот как я узнал, что это делается с помощью CURL http://it.toolbox.com/wiki/index.php/Use_curl_from_PHP_-_processing_response_headers. Я искал более простой метод. – Naumaan

+0

кажется, что этот класс уже абстрагирует материал завитка довольно мило. в чем проблема с его использованием? – nategood

ответ

0

Как вы отправили POST? Я использую сокет, а затем читаю ответ, где получаю заголовки и тело.

+0

Я хочу использовать сокет, но я не знаю, как именно его кодировать. Из моих знаний на C++ я знаю, что могу легко выполнять эту работу, если создаю сокет, но как мне это сделать в PHP? – Naumaan

+2

Я вырвал это из класса HTTP, который я написал, поэтому все тонкости - обработка ошибок и т. Д. - отсутствуют, но я думаю, что это показывает основные шаги. $ fp = @fsockopen (HttpComm :: $ host, HttpComm :: $ port, $ iErrno, $ sErrStr, (int) self :: $ iTimeoutConnectionSecs); // отправить запрос fputs ($ fp, $ sHttpString, strlen ($ sHttpString)); // это получит строку заголовков $ sResponse = stream_get_line ($ fp, 1024, "\ r \ n \ r \ n"); // Я разбиваю заголовки ответа HTTP как на так HttpComm :: $ headers = explode ("\ r \ n", $ sResponse); Если вы продолжаете читать с этого момента, вы тогда являетесь телом ответа. – grantwparks

+0

Извините за форматирование. Я смотрел под faq для форматирования кода – grantwparks

1

вы найдете их в суперглобальном $_SERVER ... все, что начинается с HTTP_ должен быть заголовок ... это зависит от сервера, насколько хорошо это будет работать ...

Greetz

back2dos

+0

-1. Он спрашивает о получении заголовков, когда его сценарий является HTTP-клиентом. – outis

2

Создайте HTTP stream context и передайте его в file_get_contents(). Впоследствии вы можете:

$metaData = stream_get_meta_data($context); 
$headers = $metaData['wrapper_data'];