Как отправлять и получать заголовки через PHP - PullRequest
0 голосов
/ 30 октября 2010

Я хотел бы изучить, как отправляются и принимаются заголовки.

Я знаю о функции PHP header и думаю, что могу просто посмотреть на фактический заголовок запроса (например, используя Firebug) и сделать идентичные запросы к серверу (включая подделку User-Agent). Это правильно?

Другая проблема заключается в том, как я могу получить ответы на заголовки обратно? Я хочу проанализировать ответ.

Спасибо.

EDIT:

@ Тату, вот код, который я запустил:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.google.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML, like Gecko) Ubuntu/10.10 Chrome/8.1.0.0 Safari/540.0');

$result = curl_exec($ch);
curl_close($ch);

header('Content-type: text/plain');
echo($result);

Ответы [ 2 ]

3 голосов
/ 30 октября 2010

Возможно, вы захотите взглянуть на cURL , который позволит вам делать запросы, а также устанавливать и проверять заголовки.PHP header только устанавливает заголовки для текущей страницы, вы не можете использовать это для подмены вашего пользовательского агента - это заголовки, установленные сервером и, как таковые, не имеют такого значения.

Базовая структура запроса cURLс пользовательскими заголовками может быть что-то вроде этого:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Your user agent");

$result = curl_exec($ch);
curl_close($ch);

Начало $result теперь будет содержать заголовки, полученные от сервера.

1 голос
/ 30 октября 2010

Если вы хотите отправлять заголовки самостоятельно, без использования cURL, проверьте сокеты в PHP.

http://php.net/sockets

...