|
|||
|
PHP и http-заголовкиЗачастую, чтобы получить необходимую информацию с удаленного сайта средствами PHP, необходимо формировать и отправлять http-заголовки. Предположим, скрипт, отправляющий заголовки и запрашивающий данные доступен по адресу example.com/request.php. Но перед запуском скрипта, желательно его протестировать - проверить, отправляются ли все необходимые HTTP заголовки? Для теста можно воспользоваться отдельным скриптом, расположив, например, его по адресу example.com/answer.php, который бы в ответе передавал все полученные заголовки. С заголовком "User-agent" все просто: request.php
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://example.com/answer.php'); curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)'); $page = curl_exec($ch); curl_close($ch); echo $page; answer.php
echo $_SERVER['HTTP_USER_AGENT']; Но вот как быть, если нужно просмотреть все, отправляемые скриптом request.php HTTP заголовки? Одно из решений - воспользоваться функцией PHP answer.php
foreach (getallheaders() as $name => $value) { echo "$name: $value\n"; } Чтобы посмотреть все отправляемые, с помощью функций cURL, http-заголовки - можно обойтись и одним скриптом answer.php: request.php
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://example.com/answer.php'); curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_USERAGENT, 'Робот'); curl_setopt($ch, CURLINFO_HEADER_OUT, true); $page = curl_exec($ch); $sent_headers = curl_getinfo($ch, CURLINFO_HEADER_OUT); curl_close($ch); echo $sent_headers; Константа CURLINFO_HEADER_OUT в функции Опубликовано: 2012/05/23
HTML-код ссылки на эту страницу:
<a href="https://petrenco.com/php.php?txt=139" target="_blank">PHP и http-заголовки</a> 30039
Добавить комментарий
|