PHP: Curl

PHP: Curl

Итак, Curl - это проект, целью которого является интерпретация URL и выборка из них данных, за проект Curl отвечает Дениел Стенберг (Daniel Stenberg). Почти все сценарии, использующие Curl - схожи по своему принципу:

  1. создание ресурса Curl функцией curl_init

  2. установку параметров с помощью функции curl_setopt

  3. выполнение запроса с помощью curl_exec.

Недавно в проект Curl был добавлен так называемый мультиинтерфейс. Теперь РНР поддерживает и эти функции, но они ещё сыроваты.
void curl_close(resource curl)
Функция curl_close освобождает память, занятую ресурсом Curl,
string curlerror(resource curl)
Функция curlerror возвращает описание последней ошибки для заданного ресурса Curl.
integer curl_errno(resource curl)
Функция curl_errno возвращает номер последней ошибки, сгенерированной заданным ресурсом Curl.В таблице ниже приведены константы РНР, представляющие коды ошибок, возвращаемые функцией curl_errno()

Коды ошибок, возвращаемые CURL функциями

Константа Описание
CURLE_ABORTED_BY_CALLBACK Функция callback прервала операцию
CURLE_BAD_CALLING_ORDER Неверный порядок вызова функций
CURLE_BAD_FUNCTION_ARGUMENT Неверный параметр функции
CURLE_BAD_PASSWORD_ENTERED Введен неправильный пароль
CURLE_COULDNT_CONNECT Невозможно подключиться к узлу
CURLE_COULDNT_RESOLVE_HOST Невозможно обнаружить узел
CURLE_COULDNT_RESOLVE_PROXY Невозможно обнаружить прокси-сервер
CURLE_FAILED_INIT Ошибка инициализации
CURLE_FILE_COULDNT_READ_FILE Нельзя прочитать файл
CURLE_FTP_ACCESS_DENIED Во время FTP-операции доступ невозможен
CURLE_FTP_BAD_DOWNLOAD_RESUME Неудачное продолжение FTP-загрузки
CURLE_FTP_CANT_GET_HOST Невозможно обнаружить FTP-узел
CURLE_FTP_CANT_RECONNECT Невозможно повторно подключиться к FTP-серверу
CURLE_FTP_COULDNT_GET_SIZE Ошибка FTP-команды SIZE
CURLE_FTP_COULDNT_RETR_FILE Невозможно найти файл по FTP-соединению
CURLE_FTP_COULDNT_SET_ASCII Невозможно установить режим ASCII
CURLE_FTP_COULDNT_SET_BINARY Невозможно установить режим BINARY
CURLE_FTP_COULDNT_STOR_FILE Ошибка FTP-команды STOR
CURLE_FTP_COULDNT_USE_REST Ошибка FTP-команды REST
CURLE_FTP_PORT_FAILED Ошибка FTP-команды PORT
CURLE_FTP_QUOTE_ERROR Ошибка FTP-команды QUOTE
CURLE_FTP_USER_PASSWORD_INCORRECT Неправильная пара пользователь-пароль для FTP-соединения
CURLE_FTP_WEIRD_227_FORMAT Нераспознанный ответ на FTP-команду 227
CURLE_FTP_WEIRD_PASS_REPLY Нераспознанный ответ на FTP-команду PASS
CURLE_FTP_WEIRD_PASV_REPLY Нераспознанный ответ на FTP-команду PASV
CURLE_FTP_WEIRD_SERVER_REPLY Нераспознанный ответ FTPrcepeepa
CURLE_FTP_WEIRD_USER_REPLY Нераспознанный ответ USER FTP-протокола
CURLE_FTP_WRITE_ERROR FTP-сервер сообщает о проблемах при выполнении операций записи
CURLE_FUNCTION_NOT_FOUND Функция LDAP не найдена
CURLE_HTTP_NOT_FOUND HTTP-страница не найдена
CURLE_HTTP_POST_ERROR Ошибка HTTP-команды post
CURLE_HTTP_RANGE_ERROR Ошибка диапазона HTTP
CURLE_LDAP_CANNOT_BIND Ошибка связи библиотеки LDAP
CURLE_LDAP_SEARCH_FAILED Ошибка поиска библиотеки LDAP
CURLE_LIBRARY_NOT_FOUND Библиотека LDAP не найдена
CURLE_MALFORMAT_USER Неправильно задано имя пользователя
CURLE_OK Ошибок нет
CURLE_OPERATION_TIMEOUTED Тайм-аут операции
CURLE_OUT_OF_MEMORY Не хватает памяти
CURLE_PARTIAL_FILE Была передана только часть файла
CURLE_READ_ERROR Ошибка чтения на локальном устройстве
CURLE_SSL_CONNECT_ERROR Ошибка SSL-соединения
CURLE_SSL_PEER_CERTIFICATE Непроверенный сертификат SSL
CURLE_TOO_MANY_REDIRECTS Слишком много переадресаций
CURLE_UNKNOWN_TELNET_OPTION Задан неизвестный параметр утилиты TELNET
CURLE_UNSUPPORTED_PROTOCOL Протокол не поддерживается
CURLE_UNSUPPORTED_PROTOCOL Протокол не поддерживается
CURLE_URL_MALFORMAT Ошибочный URL
CURLE_URL_MALFORMAT_USER Ошибочный URL пользователя
CURLE_WRITE_ERROR Ошибка записи на локальном устройстве
boolean/string curl_ехес(resource curl)
Функция curl_ехес предназначена для выполнения запроса. В зависимости от параметра CURLOPT_RETURNTRANSFER функция curl_ехес возвращает логическое значение или запрашиваемые данные см. пример ниже.

CURL отправка POST запроса:

  <?php
    if(!($curl = curl_init()))
    {
      exit ('Невозможно инициализировать ресурс Curl!');
    }
    
    //Настроить процессор поиска php.net для выполнения запроса post 
    curl_setopt($curl, CURLOPT_URL, 'http://www.php.net/search.php');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,  TRUE);
    curl_setopt($curl, CURLOPT_POST, TRUE);
    curl_setopt($curl, CURLOPT_POSTFIELDS, 'lang=en_US&Zend API&show=nosource');
    
    //сделать запрос
    $results = curl_exec($curl);
    
    print('<pre>');
    print(htmlentities($results));
    print ('</pre>');
  ?>
string curl_getinfo(resource curl, integer info)
Функция curl_getinfо применяется для поиска информации о Curl-запросе. В таблице ниже приведен перечень констант, используемых в аргументе info.

Заметьте!

Авторы Curl не стали плодить множество функций, для работы, они пошли другим путём. В скрипте используются несколько функций, а вот их поведение, и скрипта в целом, настраивается с помощью функции curl_setopt и её констант - их то как раз хренова куча! Так что Ctrl + F вам в помощь - я специально не стал разбивать материал на несколько страниц, что бы пользуясь встроенной функцией поиска, в вашем браузере, вы могли найти описание нужной константы на одной странице.

Перечень констант, используемых в аргументе curl_getinfo

Константа Описание
CURLINFO_CONNECT_TIME Время, затраченное на соединение
CURLINFO_CONTENT_LENGTH_DOWNLOAD Значение заголовка HTTP-заголовка Content-length
CURLINFO_CONTENT_LENGTH_UPLOAD Размер выгруженного файла
CURLINFO_CONTENT_TYPE Значение HTTP-заголовка Content - type
CURLINFO_EFFECTIVE_URL URL, использованный во время последнего запроса
CURLINFO_FILETIME Если Curl может определять время изменения запрошенного файла, оно может устанавливаться по временной метке Unix. Curl возвращает значение -1, если не представляется возможным получить время модификации
CURLINFO_HEADER_SIZE Длина всех HTTP-запросов в байтах
CURLINFO_HTTP_CODE HTTP-код, который возвращает сервер
CURLINFO_NAMELOOKUP_TIME Вещественное значение, отражающее время в секундах, необходимое для определения имени
CURLINFO_PRETRANSFER_TIME Вещественное значение, отражающее время в секундах, прошедшее до начала передачи
CURLINFO_REDIRECT_COUNT Количество переадресаций
CURLINFO_REDIRECT_TIME Вещественное значение, отражающее время в секундах, необходимое для всех шагов переадресации
CURLINFO_REQUEST_SIZE Размер HTTP - запроса
CURLINFO_SIZE_DOWNLOAD Общий размер загруженных данных в байтах
CURLINFO_SIZE_UPLOAD Всего выгружено байт
CURLINFO_SPEED_DOWNLOAD Скорость всех загрузок в байтах в секунду
CURLINFO_SPEED_UPLOAD Скорость всех выгрузок в байтах в секунду
CURLINFO_SSL_VERIFYRESULT Результат проверки соединения при SSL-запросе
CURLINFO_STARTTRANSFER_TIME Время, затраченное на начало передачи
CURLINFO_TOTAL_TIME Вещественное значение, отражающее время в секундах, необходимое для завершения передачи за исключением времени, необходимого для подключения
<?php

  //принять стартовую страницу узла Zend
  $curl = curl_init('http://www.zend.com/');
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
  curl_exec($curl);
   
  //получить различную информацию
  echo 'CURLINFO_CONNECT_TIME: '.curl_getinfo($curl, CURLINFO_CONNECT_TIME).'<br />';
  echo 'CURLINFO_CONTENT_LENGTH_DOWNLOAD: '.curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD).'<br />';
  echo 'CURLINFO_CONTENT_LENGTH_UPLOAD: '.curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_UPLOAD).'<br />';
  echo 'CURLINFO_CONTENT_TYPE: '.curl_getinfo($curl, CURLINFO_CONTENT_TYPE).'<br />';
  echo 'CURLINFO_EFFECTIVE_URL: '.curl_getinfo($curl,  CURLINFO_EFFECTIVE_URL).'<br />';
  echo 'CURLINFO_FILETIME: '.curl_getinfo($curl, CURLINFO_FILETIME).'<br />';
  echo 'CURLINFO_HEADER_SIZE: '.curl_getinfo($curl,  CURLINFO_HEADER_SIZE).'<br />';
  echo 'CURLINFO_HTTP_CODE: '.curl_getinfo($curl,  CURLINFO_HTTP_CODE).'<br />';
  echo 'CURLINFO_NAMELOOKUP_TIME: '.curl_getinfo($curl, CURLINFO_NAMELOOKUP_TIME).'<br />';
  echo 'CURLINFO_PRETRANSFER_TIME: '.curl_getinfo($curl,  CURLINFO_PRETRANSFER_TIME).'<br />';
  echo 'CURLINFO_REDIRECT_COUNT: '.curl_getinfo($curl,  CURLINFO_REDIRECT_COUNT).'<br />';
  echo 'CURLINFO_REDIRECT_TIME: '.curl_getinfo($curl,  CURLINFO_REDIRECT_TIME).'<br />';
  echo 'CURLINFO_REQUEST_SIZE: '.curl_getinfo($curl, CURLINFO_REQUEST_SIZE).'<br />';
  echo 'CURLINFO_SIZE_DOWNLOAD: '.curl_getinfo($curl,  CURLINFO_SIZE_DOWNLOAD).'<br />';
  echo 'CURLINFO_SIZE_UPLOAD: '.curl_getinfo($curl,  CURLINFO_SIZE_UPLOAD).'<br />';
  echo 'CURLINFO_SPEED_DOWNLOAD: '.curl_getinfo($curl,  CURLINFO_SPEED_DOWNLOAD).'<br />';
  echo 'CURLINFO_SPEED_UPLOAD: '.curl_getinfo($curl,  CURLINFO_SPEED_UPLOAD).'<br />';
  echo 'CURLINFO_SSL_VERIFYRESULT: '.curl_getinfo($curl,  CURLINFO_SSL_VERIFYRESULT).'<br />';
  echo 'CURLINFO_STARTTRANSFER_TIME: '.curl_getinfo($curl, CURLINFO_STARTTRANSFER_TIME).'<br />';
  echo 'CURLINFO_TOTAL_TIME: '.curl_getinfo($curl, CURLINFO_TOTAL_TIME).'<br />';

?>
resource curl_init(string url)
Функция curl_init используется для создания дескриптора ресурса Curl. Необязательный аргумент url устанавливает параметр CURLOPT_URL.
integer curl_multi_add_handle(resource multi, resource curl)
Функция curl_milti_add_handle добавляет обычный ресурс Curl в мульти ресурсный стек и возвращает код состояния.
curl_multi_close(resource multi)
Функция curl_milti_close закрывает мультиресурс Curl и вызывает функцию curl_multi_cleanup.
integer curl_multi_exec (resource multi)
Функция curl_milti_exec читает и записывает данные на все сокеты мультиресурсного стека. Вызывает функцию curl_milti_perform.
string curl_multigetcontent(resource multi)
Функция curl_multi_getcontent возвращает содержимое из мультиресурса.
array curl_multi_lnfo_read(resource multi)
Функция curl_multi_lnfo_read возвращает массив, содержащий информацию о мультиресурсе.
resource curl_milti_init()
Функция curl_milti_init возвращает ресурс, указывающий на мульти интерфейс.
integer curl_multi_remove_handle(resource multi, resource curl)
Функция curl_multi_remove_handle удаляет обычный ресурс Curl из мульти ресурсного стека. Возвращает код состояния.
curl_multi_select(resource multi, integer timeout)
Функция multi_select выполняет выбор из библиотеки языка С по набору ресурсов Curl в мульти ресурсном стеке. Передается необязательный аргумент timeout.
string curl_version()
Функция curl_version предназначена для определения версии работающей библиотеки Curl.
boolean curl_setopt(resource curl, string option, value setting)
Функция curl_setopt позволяет сделать настройку соединения Curl до выполнения функции curl_exec. Необходимо передавать дескриптор ресурса Curl, созданного функцией curl_init. В таблице ниже, перечислены константы для этой функции
Константа Описание
CURLOPT_BINARYTRANSFER Используется с параметром, CURLOPT_RETURNTRANSFER. Это гарантирует возвращение двоичного значения
CURLOPT_CAINFO Указывает путь к файлу, содержащему один и более сертификатов, необходимых для проверки другого узла. Этот параметр действует только вместе с параметром CURLOPT_SSL_VERIFYPEER
CURLOPT_CAPATH Указывает путь к файлу, содержащему один или более сертификатов, необходимых для проверки другого узла. Этот параметр действует только вместе с параметром CURLOPT_SSL_VERIFYPEER
CURLOPT_CLOSEPOLICY Используется для установки политики закрытия соединения при его заполнении. Может иметь значение CURLCLOSEPOLICY_LEAST_RECENTLY_USED или CURLCLOSEPOLICY_OLDEST
CURLOPT_CONNECTTIMEOUT Задает максимальное время ожидания соединения в секундах
CURLOPT_COOKIE Используется для задания файлов cookie в запросе. Он задается в виде строки со знаком равенства между именем файла cookie и значением value. Имена файлов cookie разделяются точкой с запятой. Например, cookiel=valueA; cookiel=valueB задает два файла cookie: cookiel и cookie2
CURLOPT_COOKIEFILE Путь, по которому размещаются файлы cookie по запросам. Этот файл может соответствовать формату Netscape Navigator или обычному формату HTTP-заголовка
CURLOPT_COOKIEJAR Задает путь к файлу, в котором сохраняются файлы cookie. Curl сохраняет любые файлы cookie, которые он получает во время запроса к этому файлу. Затем этот файл можно указывать в параметре CURLOPT_COOKIEFILE
CURLOPT_CRLF При значении TRUE Curl преобразует символы новой строки, характерные для ОС Unix, в пары символов "возврат каретки перевод строки"
CURLOPT_CUSTOMREQUEST Используется для отсылки альтернативной команды при HTTP-запросе. В нем указывается только команда, а не вся строка запроса
CURLOPT_DNS_CACHE_TIMEOUT Параметр работы с кэшем поиска имен узлов. В нем задается время хранения имени в кэше (в секундах)
CURLOPT_DNS_USE_GLOBAL_CACHE При значении TRUE Curl разделяет кэш поиска имен узлов. Этот параметр не является защищенным с точки зрения потоков
CURLOPT_EGDSOCKET Задает путь к сокету Entropy Gathering Daemon. Curl использует его в качестве генератора случайных чисел, который используется для SSL
CURLOPT_FAILONERROR При значении TRUE коды HTTP-ответов больше 300 не приводят к возвращению страниц, обычно возвращаемых сервером
CURLOPT_FILE Предназначен для вывода сообщений в файл, а не в браузер
CURLOPT_FILETIME При значении TRUE Curl делает попытку получить время модификации запрошенного файла
CURLOPT_FOLLOWLOCATION При значении TRUE Curl просматривает заголовки переадресации, возвращаемые HTTP-серверами. Установите в TRUE, что бы Curl следовал редиректам.
CURLOPT_FORBID_REUSE При значении TRUE Curl закрывает соединение после завершения обработки запроса
CURLOPT_FRESH_CONNECT При значении TRUE Curl независимо от наличия соответствующего соединения в кэше создает новое соединение
CURLOPT_FTPAPPEND При значении TRUE Curl при операции FTP выгрузки, вместо перезаписи выполняет добавление
CURLOPT_FTPLISTONLY При значении TRUE Curl возвращает перечень файлов, хранящихся в FTP-каталоге
CURLOPT_FTPPORT Задает настройки FTP-команды PORT, при этом запрашивается соединение с сервером. В этом параметре указываются IP-адрес, имя узла, имя сетевого интерфейса. Для использования адреса, используемого по умолчанию, указывается -
CURLOPT_FTP_USE_EPSV По умолчанию, при FTP-передачах в пассивном режиме, Curl использует команду EPSV. Для того чтобы запретить использование этой команды, данный параметр должен иметь значение FALSE
CURLOPT_HEADER При значении TRUE Curl включает в вывод заголовки
CURLOPT_HEADERFUNCTION Задает имя функции, которую вызывает Curl для каждого вызванного HTTP-заголовка. Эта функция должна принимать два аргумента: ресурс Curl и строку, содержащую полный заголовок
CURLOPT_HTTPGET При значении TRUE Curl в HTTP-передачах использует метод GET. Это может понадобиться только при повторном использовании ресурса Curl
CURLOPT_HTTPHEADER Позволяет отправить HTTP-заголовки, прописанные вручную. Заголовки должны быть помещены в массив
CURLOPT_HTTPPROXYTUNNEL При значении TRUE Curl передает все запросы, пользуясь туннелем на прокси-сервере
CURLOPT_HTTP_VERSION Используется для того, чтобы вынудить Curl использовать соответствующую версию протокола HTTP. Значение CURL_HTTP_VERSION_NONE задается, если право выбора предоставляется Curl. Для того чтобы использовалась версия HTTP/1.0, необходимо задать значение CURL_HTTP_VERSION_1_0. Для того чтобы использовалась версия HTTP/1.1, необходимо задать значение CURL_HTTP_VERSION_l_l
CURLOPT_INFILE Если в этом параметре указан открытый файловый поток, то Curl будет считывать туда ввод из файла
CURLOPT_INFILESIZE Используется для определения размера выгружаемого файла
CURLOPT_INTERFACE Задает имя используемого интерфейса. Можно задавать имя интерфейса, имя узла или IP-адрес
CURLOPT_KRB4LEVEL Для FTP-передач с помощью этого параметра можно указать уровень безопасности Kerberos. Значением этого параметра могут быть такие строки: clear, safe, confidential и private. Установка значения FALSE отключит безопасность Kerberos
CURLOPT_LOW_SPEED_LIMIT Используется для снижения ограничения скорости передачи, которая задается в байтах в секунду. Если скорость передачи упадет ниже предела, заданного параметром CURLOPT_LOW_SPEED_TIME, Curl прервет передачу
CURLOPT_LOW_SPEED_TIME Предназначен для снижения ограничения скорости передачи и используется с параметром CURLOPT_LOW_SPEED_LIMIT
CURLOPT_MAXCONNECTS Задает размер кэша соединения
CURLOPT_MAXREDIRS Используется для задания максимального количества переадресаций
CURLOPT_MUTE При значении TRUE PHP не генерирует вывод на браузер при выполнении функций Curl
CURLOPT_NETRC При значении TRUE Curl при аутентификации пользователей просматривает путь ~/.netrc
CURLOPT_NOBODY При значении TRUE Curl исключает из вывода основное тело HTTP-страницы
CURLOPT_NOPROGRESS При значении FALSE Curl отображает индикатор работы. По умолчанию этот параметр имеет значение TRUE
CURLOPT_PASSWDFUNCTION Используется для указания имени функции обработки запросов паролей. Эта функция должна принимать три аргумента: ресурс Curl, подсказку пароля, отправленную сервером, и ссылку, куда необходимо поместить пароль. Эта функция возвращает нуль в случае успешного завершения работы и значение, отличное от нуля, в случае возникновения ошибки. Для восстановления стандартной функциональности для этого параметра устанавливается значение FALSE
CURLOPT_PORT Используется для задания номера порта, применяемого в запросах
CURLOPT_POST При значении TRUE Curl делает HTTP-запрос POST с помощью кодировки application/x-www-form-urlencoded
CURLOPT_POSTFIELDS Предназначен для передачи всех данных операции post. Поля форматируются строго в соответствии с порядком приема. Например, строка apple=l&ball=red&cat=45.56 будет соответствовать трем полям: apple, ball и cat
CURLOPT_POSTQUOTE Передает массив FTP-команд, выполняемых после главного запроса
CURLOPT_PROXY Устанавливается на прокси-сервере
CURLOPT_PROXYUSERPWD Используется для установки имени пользователя и его пароля, необходимых для прокси-сервера. При этом используется формат username; password
CURLOPT_PUT При значении TRUE Curl выполняет HTTP-запрос PUT. При этом необходимо задавать параметры CURLOPT INFILE и CURLOPT INFILESIZE
CURLOPT_QUOTE Задает массив FTP-команд, выполняемых до главного запроса
CURLOPT_RANDOM_FILE Задает путь к файлу, который будет читать Curl для задания начальных значений генератора случайных величин SSL
CURLOPT_RANGE Используется для задания диапазона заголовка, отправленного HTTP-сервером. Передается строка, содержащая смещение начала и конца строки в байтах, разделенные тире. При указании нескольких диапазонов они разделяются запятыми, например 100-150,233-502. О диапазонах можно узнать подробнее в спецификации протокола HTTP 1.1
CURLOPT_READFUNCTION Задает имя функции передачи данных другой стороне соединения. Эта функция должна принимать два аргумента: ресурс Curl и строку ссылки. Копирует данные в строку ссылки и возвращает количество байт. Возвращение нулевого значения свидетельствует о достижении конца файла
CURLOPT_REFERER Используется для задания значения поля Ref erer, передаваемого в HTTP-запросах
CURLOPT_RESUME_FROM Предназначен для возобновления передачи. Смещение задается в байтах
CURLOPT_RETURNTRANSFER Обычно Curl отправляет результаты команд непосредственно в браузер. Для получения результатов в виде возвращаемого значения утилиты curl_exec для этого параметра устанавливается значение TRUE
CURLOPT_SSLCERT Задает путь к сертификату SSL в формате РЕМ (Privacy Enhanced Mail)
CURLOPT_SSLCERTPASSWD Задает пароль, необходимый для чтения сертификата SSL, заданного параметром CURLOPT_SSLCERT
CURLOPT_SSLENGINE Задает имя процессора SSL, который будет использоваться для частных ключей
CURLOPT_SSLENGINE_DEFAULT Задает имя процессора SSL, который будет использоваться в большинстве случаев, исключая частные ключи
CURLOPT_SSLKEY Задает путь к частному ключу. По умолчанию задается тип РЕМ, который может быть изменен параметром CURLOPT_SSLKEYTYPE
CURLOPT_SSLKEYPASSWD Задает пароль, необходимый для использования с частным ключом, заданным параметром CURLOPT_SSLKEY
CURLOPT_SSLKEYTYPE Задает тип частного ключа, заданного параметром CURLOPT_SSLKEY. Тип определяется одной из следующих строк: РЕМ, DER или ENG
CURLOPT_SSLVERSION Предназначен для активизации второй или третьей версии SSL. Обычно Curl "угадывает" соответствующую версию протокола
CURLOPT_SSL_CIPHER_LIST Используется для определения списка шифров, которые будут использоваться при SSL-соединениях. Названия шифров разделяются точкой с запятой. Этот список задается в процессе компиляции OpenSSL
CURLOPT_SSL_VERIFYHOST Для этого параметра устанавливается значение 1, если Curl проверяет имя сертификата SSL, или значение 2, для того чтобы было достаточно простого совпадения с именем узла
CURLOPT_SSL_VERIFYPEER При значении TRUE Curl делает попытку проверить идентичность соединения с помощью сертификатов, заданных параметром CURLOPT_CAINFO
CURLOPT_STDERR Задает открытый файловый поток, куда будут перенаправлены сообщения об ошибках
CURLOPT_TIMECONDITION Предназначен для активизации условий передачи на основании анализа времени последней модификации удаленного файла. Для задания временного значения, которое будет использоваться для проверки этого условия, используется параметр CURLOPT_TIMEVALUE. Для соблюдения требования модификации файла с определенного момента времени используется параметр TIMECOND_IFMODSINCE. Для соблюдения требования отсутствия изменений файла с определенного момента времени используется параметр TIMECOND_ISUNMODSINCE
CURLOPT_TIMEOUT Задает максимальное время в секундах, на протяжении которого может выполняться Curl-операция
CURLOPT_TIMEVALUE Устанавливает время в стандартном формате временной метки Unix, который используется параметром CURLOPT_TIMECONDITION
CURLOPT_TRANSFERTEXT При значении TRUE Curl осуществляет FTP-передачи в формате ASCII и в тексте в формате LDAP вместо HTML
CURLOPT_UPLOAD При значении TRUE Curl выполняет НТТР-выгрузку. Необходимо установить CURLOPT_INFILE и CURLOPT_INFILESIZE
CURLOPT_URL Задает исполняемый URL. Этот параметр можно установить и с помощью утилиты curl_init
CURLOPT_USERAGENT Устанавливает значение поля User-agent, переданное в HTTP-запросах
CURLOPT_USERPWD Задает имя пользователя и его пароль, необходимый для соединения. При этом используется формат username:password
CURLOPT_VERBOSE При значении TRUE Curl выводит сообщение о состоянии
CURLOPT_WRITEFUNCTION Задает имя функции, которая будет получать данные при указанном соединении. Эта функция принимает два аргумента: ресурс Curl и строку данных. Она возвращает количество обработанных байтов данных. Если возвращаемое значение не соответствует количеству переданных данных, Curl сообщает об ошибке
CURLOPT_WRITEHEADER Задает открытый файловый поток, который будет получать заголовки. Значением option задается ресурс, возвращаемый функцией fopen

В будущих статьях я планирую освещать рецепты типовых задач, решаемых при помощи Curl. Подробнее о проекте Curl можно узнать по адресу

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


Защитный код
Обновить



Кто на сайте
Сейчас 95 гостей онлайн