cURL

www.curl.haxx.se

cURLcURL (сокр. от client URL) – разработанная в 1998 году Дэниэлом Стейнбергом кроссплатформенная утилита для автоматизации передачи удалённых файлов по различным протоколам (http, https, ftp, gopher, telnet, dict, file и ldap).

Для встраивания cURL в различные языки программирования разработана библиотека libcurl. Начиная с версии 4.0.2 библиотека по умолчанию включена в конфигурацию PHP.

Помимо поддержки основных сетевых протоколов и сертификатов, cURL обеспечивает туннелирование через http-прокси, работает с http-куками, успешно взаимодействует с разнообразными системами аутентификации, возобновляет докачку в случае обрыва. В общем, большая умница и красавица :)

Функции cURL:

resource curl_init ([string url])

Инициализация cURL-сессии. При этом функция возвратит cURL-дескриптор, который затем используется при вызовах функции curl_setopt(), curl_exec() и curl_close(). Необязательный параметр url устанавливает опцию CURLOPT_URL, обозначающий адрес, с которым будут производиться дальнейшие операции. Если это параметр не будет установлен, то его в дальнейшем можно определить с помощью функции curl_setopt().


bool curl_setopt (resource ch, string option, mixed value)

Предварительная установка опции для cURL-сессии. Обычно функция вызывается несколько раз, устанавливая различные параметры для сеанса. Параметр ch является идентификатором сессии (cURL-дескриптор), установленным с помощью функции curl_init() . Параметр option является названием опции которую требуется установить, а value – её значением.


bool curl_exec (resource ch)

Запуск cURL-сессии на выполнение. При этом будут использованы параметры, установленные с помощью вызовов функции curl_setopt(). ch - cURL-дескриптор текущей сессии, полученный в результате вызова функции curl_init(). В случае неудачи, функция возвращает false.


void curl_close(resource ch)

Закрытие cURL-сессии. Дескриптор ch при этом уничтожается, ресурсы выделенные на сессию освобождаются.


Надобно отметить, функции здесь не все. Перечислены только те, которые обязательно участвуют в любой cURL-сессии. Кроме этих функций существует ещё около десятка, которые позволяют использовать различные возможности cURL.

Пример:

См. также: file_get_contents