CURL получаем / отдаем заголовки

Часто бывает необходимо при парсинге прочитать передаваемые целевой страницей куки и заголовки, lzk последующего их использования.

parsing

Написал функцию, которая позволяет это делать. Ниже приведен пример с комментариями, базируясь на котором можно собрать код нужной функциональности:

//$url=имя хоста, куда будем заходить

function load_page($url){

$cookies=array();

// имя хоста, откуда якобы пришли, некоторые проверяют

$ref=”google.com”;

// инициализация cURL

$ch = curl_init($url);

//– откуда пришли )

curl_setopt($ch, CURLOPT_REFERER, $ref);

// чтобы выводил заголовки

curl_setopt ($ch, CURLOPT_HEADER, 1);

// чтобы не выводил саму страницу (она не нужна)

curl_setopt ($ch, CURLOPT_NOBODY, 1);

// если ведется проверка HTTP User-agent, то передаем один из возможных допустимых вариантов:

curl_setopt ($ch, CURLOPT_USERAGENT, ‘Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8′);

// если проверятся откуда пришел пользователь, то указываем допустимый заголовок HTTP Referer:

curl_setopt ($ch, CURLOPT_REFERER, ‘http://’.$hostname.’/');

// возвращать результат работы

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

// не проверять SSL сертификат

curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);

// не проверять Host SSL сертификата

curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);

// это необходимо, чтобы cURL не высылал заголовок на ожидание

curl_setopt ($ch, CURLOPT_HTTPHEADER, array(‘Expect:’));

// выполнить запрос

curl_exec ($ch);

$t=curl_multi_getcontent ($ch);

curl_close ($ch);

// получил массив всех заголовков от сервера

$headers = explode(“\n”, $t);

return $headers;

}

Функция вернет массив заголовков

чтото вроде

Array
(
[0] => HTTP/1.1 200 OK
[1] => Cache-Control: private
[2] => Content-Length: 3260
[3] => Content-Type: text/html; charset=utf-8
[4] => P3P: CP=”NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM”
[5] => X-Powered-By: ASP.NET
[6] => X-AspNet-Version: 2.0.50727
[7] => Set-Cookie: FirstVisit=20090514 172432; expires=Tue, 14-May-2019 17:24:32 GMT; path=/
[8] => Set-Cookie: ASP.NET_SessionId=supxkw55aixbuwa00yan5y55; path=/; HttpOnly
[9] => Set-Cookie: userSettings=language=1&timezone=25&CID=643; expires=Tue, 14-May-2019 17:24:32 GMT; path=/
[10] => Set-Cookie: ParentAppId=currentE=60&parentE=24; domain=.bwin.com; expires=Sat, 13-Jun-2009 17:24:32 GMT; path=/
[11] => Date: Thu, 14 May 2009 17:24:32 GMT
}

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

curl_setopt($ch, CURLOPT_COOKIE, $value);

$value соответственно где то заранее хранится

Post to Twitter Tweet This Post

  • jQuery ajax в IE7
  • Несколько файлов .wav в один с помощью PHP
  • Убрать IE image toolbar через .htaccess
  • CURL справка
  • Crop и Resize изображений средствами CodeIgniter
  • создать zip средствами php
  • CURL HTTPS GET POST отправка
  • анимированный GIF средствами php
  • file_get_contents POST отправляем -> получаем
  • Базовая структура шаблона (themes) WordPress
  • PHP Headers популярные Mime Types
  • QueryTemplates – шаблонизатор с использованием phpQuery
  • Оставить комментарий