Начнем с рассмотрения ее основных
возможностей, а в последующих постах займемся примерами: curl
авторизация, curl куки, и т.п. и закончим созданием плагина для
WordPress, который будет автоматически, выдавая себя за браузер,
добавлять каждый Ваш новый пост в один из сервисов закладок (в какой
пока не скажу). Но обо всем по порядку.
Введение
cURL (libcurl) – библиотека для передачи информации между клиентским
местом и сервером по протоколам http, https, ftp, ftps, ldap, telnet ( в
дальнейшем я буду рассматривать работу с http). По-сути использование curl
намного упрощает жизнь программиста, занимающегося парсингом данных с
различных сервисов не имеющих api интерфейсов, позволяя реализовывать
скрипты, имитирующие например web-браузер или ftp-клиент, при этом
избавляя от необходимости ручного формирования пакетов. Разумеется для
работы с библиотекой необходимы базовые представления о работе того или
иного протокола, т.е. если далее речь зайдет о http, то необходимо
примерно знать для чего нужны куки, какими методами передаются данные
(post, get), что такое заголовки http пакетов и какого рода информация в
них содержится. На эту тему советую ознакомиться с материалом из Википедии о http.
Подключение библиотеки
Для подключения curl в php под win необходимо раскомментировать в php.ini строчку:
;extension=php_curl.dll . Для unix платформ требуется установить пакет libcurl и пересобрать php c опцией –with-curl. На официальном сайте php есть подробный мануал про установке и использованию curl. Определить, включена ли библиотека cURL в php, можно узнать, выполнив phpinfo().
Обзор функций и пример
Работа с cURL в php сводится к вызову четырех основных функций:
- curl_init – инициализация сеанса
- curl_exec – выполнение запроса
- curl_setopt – установка параметров
- curl_close – закрытие сеанса
Рассмотрим простейший пример:
//инициализируем сеанс
$curl = curl_init();
//указываем адрес страницы
curl_setopt($curl, CURLOPT_URL,'http://test.com/');
//представляемся серверу браузером Opera версии 10.00
curl_setopt($curl, CURLOPT_USERAGENT, 'Opera 10.00');
//ответ сервера сохранять в переменную, а не на экран
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//выполняем запрос, результат в переменную $res
$res = curl_exec($curl);
if(!$res)
{
//для обработки ошибок curl
$error = curl_error($curl).'('.curl_errno($curl).')';
echo $error;
}
else
{
echo $res;
} |
Если все настроено правильно, то на
экран выведется "морда”, того сайта, который вы указали. Вся страница
хранится в переменной $res и с ее контентом мы можем делать все что
захотим. Как Вы уже наверно догадались, можно создать скрипт-робот,
который будет "передвигаться” от страницы к страницы и получать нужную
для нас информацию. Проблемы с которыми он (робот) может столкнуться –
необходимость передавать и устанавливать куки и авторизироваться, к
счастью curl имеет встроенный для этого функционал, который мы
рассмотрим в следующей статье.
|