Функции cURL в PHP
Обзор
Библиотека libcurl, созданная Даниэлем Стенбергом и поддерживаемая PHP, позволяет подключаться и обмениваться данными с различными типами серверов, используя различные типы протоколов.
В настоящее время libcurl поддерживает протоколы http, https, ftp, gopher, telnet, dict, file и ldap. libcurl также поддерживает аутентификацию HTTPS, HTTP POST, HTTP PUT, загрузку по FTP (это также можно сделать через расширение FTP в PHP), загрузку через HTTP-формы, прокси, cookies и аутентификацию по имени пользователя и паролю.
Методы реализации запросов Get и Post с использованием cURL в PHP
Эти функции появились в PHP 4.0.2.
Требования
Чтобы использовать функции cURL в PHP, нужно установить пакетlibcurl.
PHP требует libcurl 7.0.2-beta или выше. Чтобы использовать cURL в PHP 4.2.3, необходимо установить libcurl 7.9.0 или выше. Начиная с PHP 4.3.0, необходимо установить libcurl 7.9.0 или выше. Начиная с PHP 5.0.0, необходимо установить libcurl 7.10.5 или выше.
Установка
Чтобы использовать поддержку cURL в PHP, необходимо добавить опцию --with-curl[=DIR] при компиляции PHP, где DIR — путь к каталогу, содержащему lib и include. В каталоге include должна быть папка с именем curl, содержащая easy.h и curl.h. В папке lib должен быть файл с именем libcurl.a. Для PHP 4.3.0 можно настроить --with-curlwrappers, чтобы cURL использовал URL-потоки.
Примечание: примечание для пользователей Win32
Чтобы использовать этот модуль в среде Windows, libeay32.dll и ssleay32.dll должны быть помещены в каталог, входящий в переменную среды PATH. Не используйте libcurl.dll с сайта cURL.
Типы ресурсов
Это расширение определяет два типа ресурсов: дескрипторы cURL и пакетные дескрипторы cURL.
Функции cURL в PHP
Ниже приведён список функций cURL в PHP:
| Функция | Описание |
|---|---|
| curl_close() | Закрывает сеанс cURL. |
| curl_copy_handle() | Копирует дескриптор cURL и все его параметры. |
| curl_errno() | Возвращает номер последней ошибки. |
| curl_error() | Возвращает строку, содержащую последнюю ошибку текущего сеанса. |
| curl_escape() | Возвращает экранированную строку, выполняя URL-кодирование заданной строки. |
| curl_exec() | Выполняет сеанс cURL. |
| curl_file_create() | Создаёт объект CURLFile. |
| curl_getinfo() | Получает информацию о дескрипторе ресурса соединения cURL. |
| curl_init() | Инициализирует сеанс cURL. |
| curl_multi_add_handle() | Добавляет отдельный дескриптор curl в пакетный сеанс curl. |
| curl_multi_close() | Закрывает набор дескрипторов cURL. |
| curl_multi_exec() | Запускает подчинённые соединения текущего дескриптора cURL. |
| curl_multi_getcontent() | Если CURLOPT_RETURNTRANSFER установлен, возвращает текстовый поток полученного вывода. |
| curl_multi_info_read() | Получает связанную информацию о передаче текущего обрабатываемого cURL. |
| curl_multi_init() | Возвращает новый пакетный дескриптор cURL. |
| curl_multi_remove_handle() | Удаляет ресурс дескриптора из ресурса пакетного дескриптора curl. |
| curl_multi_select() | Ожидает все активные соединения в пакете cURL. |
| curl_multi_setopt() | Устанавливает опцию групповой передачи cURL. |
| curl_multi_strerror() | Возвращает текстовую строку с описанием кода ошибки. |
| curl_pause() | Приостанавливает и возобновляет соединение. |
| curl_reset() | Сбрасывает все опции дескриптора сеанса libcurl. |
| curl_setopt_array() | Пакетно устанавливает опции для сеанса передачи cURL. |
| curl_setopt() | Устанавливает опцию передачи cURL. |
| curl_share_close() | Закрывает разделяемый дескриптор cURL. |
| curl_share_init() | Инициализирует общий дескриптор cURL. |
| curl_share_setopt() | Устанавливает параметр передачи cURL для общего дескриптора. |
| curl_strerror() | Возвращает строковое описание кода ошибки. |
| curl_unescape() | Декодирует строку в URL-кодировке. |
| curl_version() | Получает информацию о версии cURL. |