Класс-обертка для curl — s_http

Класс s_http создан он как раз на основе curl, а пользоваться им гораздо проще, чем работать с чистым curl api. Главное – для большинства задач он подходит.

Особенности:

Класс старается получить от сервера сжатые средствами gzip, deflate данные, если конечно сервер такое может. Нужно для экономии трафика.
Если класс в момент скачивания страницы получает 302 редирект, он переходит по нему.
По умолчанию User-Agent файрфоксовский, но вы можете сами его установить.
Все кукисы, полученные от вебсервера запоминаются. Очень удобно, если нужно парсить из-под логина.
Если пользователем изначально не задан Referer, то класс ставит в это поле предыдущую скачанную страницу, как это делают браузеры.
ПОДКЛЮЧЕНИЕ КЛАССА, ИНИЦИАЛИЗАЦИЯ.
Для последующих примеров, я этот код не пишу. Но важно понимать, что он обязателен.

PHP

// Подключаем файл с классом
include(‘s_http.php’);

// Создали класс
$http = new s_http();

// Инициализируем
$http->init();

// Подключаем файл с классом
include(‘s_http.php’);

// Создали класс
$http = new s_http();

// Инициализируем
$http->init();
ПРИМЕР I. СКАЧИВАЕМ ГЛАВНУЮ СТРАНИЦУ ЯНДЕКСА.
Самый распространенный код. Просто скачиваем страницу.

PHP

if( $http->get(‘http://www.yandex.ru/’) ){
// Все ок, выводим скачанную информацию
echo $http->data();
}

else{
// Покажем последнюю ошибку
echo $http->error();
}

if( $http->get(‘http://www.yandex.ru/’) ){
// Все ок, выводим скачанную информацию
echo $http->data();
}

else{
// Покажем последнюю ошибку
echo $http->error();
}
ПРИМЕР II. ОТПРАВЛЯЕМ POST ЗАПРОС.
Отличный пример для сабмиттеров, или если вам нужно взять данные из-под логина (т.е. сначала войти в свой кабинет).

PHP

if( $http->post(‘http://mail.ru’,’login=lexus&password=xxxxxx&submit=Вход’) ){
// Все ок, выводим скачанную информацию
echo $http->data();
}
else{
// Покажем последнюю ошибку
echo $http->error();
}

if( $http->post(‘http://mail.ru’,’login=lexus&password=xxxxxx&submit=Вход’) ){
// Все ок, выводим скачанную информацию
echo $http->data();
}
else{
// Покажем последнюю ошибку
echo $http->error();
}
ПРИМЕР III. СКАЧИВАЕМ СТРАНИЦУ ПО HTTPS.
Если нужно скачать данные по https, то можно воспользоваться этим кодом. Правда, если вам нужно для авторизации отправлять свой сертификат, то код этот не годится, потому что внутри него отключается проверка сертификата. Но для большинства случаев метод https_get вас устроит.

PHP

if( $http->https_get(‘https://light.webmoney.ru/login.aspx?l=ru’) ){
// Все ок, выводим скачанную информацию
echo $http->data();
}
else{
// Покажем последнюю ошибку
echo $http->error();
}

if( $http->https_get(‘https://light.webmoney.ru/login.aspx?l=ru’) ){
// Все ок, выводим скачанную информацию
echo $http->data();
}
else{
// Покажем последнюю ошибку
echo $http->error();
}
ПРИМЕР IV. CODEIGNITER
Любителям фреймворка CodeIgniter тоже подойдет этот класс. Поместите его в папку /system/application/libraries/, а затем в коде, например в модели:

PHP

$this->load->library(‘s_http’);
$this->s_http->init();
if( $this->s_http->get(‘http://www.samborsky.com/’) ){
echo $this->s_http->data();
}
else{
echo $this->s_http->error();
}

$this->load->library(‘s_http’);
$this->s_http->init();
if( $this->s_http->get(‘http://www.samborsky.com/’) ){
echo $this->s_http->data();
}
else{
echo $this->s_http->error();
}

ОПУБЛИКОВАНО

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *