Curl в php

cURL — это свободная кроссплатформенная служебная программа командной строки для передачи файлов по различным протоколам с синтаксом URL.

Использование cURL в php

При использовании под Windows лучше для надёжности скопировать файлы libeay32.dll и ssleay32.dll из папки с php в system32.
Представляет собой (не знаю, как всё устроено внутри, но как выглядит «наружу») объект, который инициализируется factory-функцией, после чего можно при помощи своеобразных сеттеров установить необходимые свойства, а потом запустить выполнение.
Использование:

Т.е. все сводится к вызову curl_init, нескольким вызовам curl_setopt, затем curl_exec и curl_close.
Разберём эти функции подробнее (полный список — здесь):

curl_init

Инициализирует новую сессию и возвращает её дескриптор («создаёт объект»).
Опционально можно передать урл, тогда будет установлено свойство CURLOPT_URL (можно установить и позже).

curl_setopt

Основная функция. Устанавливает «свойство» для указанного первым параметром «объекта».
resource $ch — дескриптор cURL-сессии
int $option — опция («свойство») (задаётся не целым числом, а предопределёнными константами)
mixed $value — значение.
Самое интересное здесь — эти самые предопределённые константы, в них вся сложность. Все они перечислены на официальном сайте, хоть и не по алфавиту немного.

curl_exec

Выполняет cURL-запрос.
Возвращает обычно true/false, но если установлен параметр CURLOPT_RETURNTRANSFER, то при успешном выполнении вернёт ответ.

curl_close

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

Вспомогательные функции:

curl_errno

Возвращает номер ошибки или 0, если всё прошло хорошо.

curl_error

Возвращает описание ошибки или », если всё прошло хорошо.

curl_getinfo

Можно передать параметр $opt (из констант).
Возвращает информацию о последнем обмене данными (короче, трансфере).
Если передан второй параметр, то возвращает строку, если нет — массив всех параметров.

Пример

*Формат строк для массива HTTP-заголовков — такой же, как и в функции header()

Similar Posts

LEAVE A COMMENT