(PHP 4 >= 4.0.2, PHP 5, PHP 7)
curl_setopt — Устанавливает параметр для сеанса CURL
Устанавливает параметр для указанного сеанса cURL.
ch
Дескриптор cURL, полученный из curl_init().
option
Устанавливаемый параметр CURLOPT_XXX.
value
Значение параметра option
.
Для следующих значений параметра option
,
параметр value
должен быть типа bool:
Параметр | Устанавливаемое значение value |
Замечания |
---|---|---|
CURLOPT_AUTOREFERER |
TRUE для автоматической установки поля Referer:
в запросах, перенаправленных заголовком Location:.
|
|
CURLOPT_BINARYTRANSFER |
TRUE для возврата необработанного ответа при использовании
константы CURLOPT_RETURNTRANSFER .
|
С PHP 5.1.3 эта опция больше не требуется: необработанный вывод
всегда возвращается при использовании опции CURLOPT_RETURNTRANSFER .
|
CURLOPT_COOKIESESSION |
TRUE для указания текущему сеансу начать новую "сессию" cookies. Это заставит
libcurl проигнорировать все "сессионные" cookies, которые она должна была бы
загрузить, полученные из предыдущей сессии. По умолчанию, libcurl всегда
сохраняет и загружает все cookies, вне зависимости от того, являются ли они
"сессионными" или нет. "Сессионные" cookies - это cookies без срока истечения,
которые должны существовать только для текущей "сессии".
|
|
CURLOPT_CERTINFO |
TRUE для вывода информации о сертификате SSL в поток STDERR
при безопасных соединениях.
|
Добавлена в cURL 7.19.1.
Доступна, начиная с версии PHP 5.3.2. Для корректной работы требует
включенной опции CURLOPT_VERBOSE .
|
CURLOPT_CONNECT_ONLY |
TRUE сообщает библиотеке, чтобы она провела необходимые аутентификацию прокси
и настройку соединения, но не передавала данные. Эта опция реализована для
HTTP, SMTP и POP3.
|
Добавлена в 7.15.2. Доступна с версии PHP 5.5.0. |
CURLOPT_CRLF |
TRUE для преобразования концов строк Unix в CRLF.
|
|
CURLOPT_DNS_USE_GLOBAL_CACHE |
TRUE для использования глобального кэша DNS. Этот параметр не
является потокобезопасным и по умолчанию включен.
|
|
CURLOPT_FAILONERROR |
TRUE для подробного отчета при неудаче, если полученный HTTP-код
больше или равен 400. Поведение по умолчанию возвращает страницу
как обычно, игнорируя код.
|
|
CURLOPT_SSL_FALSESTART |
TRUE для разрешения ложного старта TLS.
|
Добавлено cURL 7.42.0. Доступно с PHP 7.0.7. |
CURLOPT_FILETIME |
TRUE для попытки получения даты модификации удаленного документа.
Это значение может быть получено с помощью параметра CURLINFO_FILETIME
из функции curl_getinfo().
|
|
CURLOPT_FOLLOWLOCATION |
TRUE для следования любому заголовку
"Location: ", отправленному сервером в своем
ответе (учтите, что это происходит рекурсивно, PHP будет следовать
за всеми посылаемыми заголовками "Location: ",
за исключением случая, когда установлена константа
CURLOPT_MAXREDIRS ).
|
|
CURLOPT_FORBID_REUSE |
TRUE для принудительного закрытия соединения после
завершения его обработки так, чтобы его нельзя было использовать
повторно.
|
|
CURLOPT_FRESH_CONNECT |
TRUE для принудительного использования нового соединения
вместо закэшированного.
|
|
CURLOPT_FTP_USE_EPRT |
TRUE для использования EPRT (и LPRT) при активных FTP
загрузках. Используйте FALSE для того, чтобы отключить EPRT и LPRT
и использовать только PORT.
|
|
CURLOPT_FTP_USE_EPSV |
TRUE для первоначальной пробы команды EPSV при FTP
передачах. Если команда не удалась, будет произведен обратный
откат к PASV. Установите в FALSE для отключения EPSV.
|
|
CURLOPT_FTP_CREATE_MISSING_DIRS |
TRUE для создания отсутствующих директорий, если FTP-операция
обнаруживает несуществующий путь.
|
|
CURLOPT_FTPAPPEND |
TRUE для записи в конец удаленного файла, вместо перезаписывания.
|
|
CURLOPT_TCP_NODELAY |
TRUE для отключения алгоритма Нейгла, который пытается
уменьшить количество мелких пакетов в сети.
|
Доступна с версии PHP 5.2.1 для версий собранных с libcurl 7.11.2 или новее. |
CURLOPT_FTPASCII |
Псевдоним CURLOPT_TRANSFERTEXT .
Используйте его вместо этого.
|
|
CURLOPT_FTPLISTONLY |
TRUE для возврата только списка имен из FTP директории.
|
|
CURLOPT_HEADER |
TRUE для включения заголовков в вывод.
|
|
CURLINFO_HEADER_OUT |
TRUE для отслеживания строки запроса дескриптора.
|
Доступен, начиная с версии PHP 5.1.3. Префикс CURLINFO_
употреблен специально.
|
CURLOPT_HTTPGET |
TRUE для сброса метода HTTP-запроса в метод GET.
Так как GET используется по умолчанию, этот параметр необходим только
в случае, если метод запроса был ранее изменен.
|
|
CURLOPT_HTTPPROXYTUNNEL |
TRUE для туннелирования через указанный HTTP-прокси.
|
|
CURLOPT_MUTE |
TRUE для полного отключения сообщений функций cURL.
|
Удалена в cURL 7.15.5 (Можно использовать опцию CURLOPT_RETURNTRANSFER) |
CURLOPT_NETRC |
TRUE для считывания файла ~/.netrc
на предмет логина и пароля для удаленного сайта, с которым
устанавливается соединение.
|
|
CURLOPT_NOBODY |
TRUE для исключения тела ответа из вывода.
Метод запроса устанавливается в HEAD. Смена этого параметра в FALSE
не меняет его обратно в GET.
|
|
CURLOPT_NOPROGRESS |
|
|
CURLOPT_NOSIGNAL |
TRUE для игнорирования любой функции cURL, посылающей сигналы
PHP процессу. Этот параметр включен по умолчанию в многопоточных
SAPIs для корректной работы таймаут параметров.
|
Добавлен в версии cURL 7.10. |
CURLOPT_PATH_AS_IS |
TRUE для игнорирования последовательностей точка точка.
|
Добавлено в cURL 7.42.0. Доступно с PHP 7.0.7. |
CURLOPT_PIPEWAIT |
TRUE для ожидания конвеера/мультиплексирования.
|
Добавлено в cURL 7.43.0. Доступно с PHP 7.0.7. |
CURLOPT_POST |
TRUE для использования обычного HTTP POST. Данный метод POST
использует обычный application/x-www-form-urlencoded,
обычно используемый в HTML-формах.
|
|
CURLOPT_PUT |
TRUE для загрузки файла методом HTTP PUT. Используемый файл должен быть
установлен с помощью параметров CURLOPT_INFILE и
CURLOPT_INFILESIZE .
|
|
CURLOPT_RETURNTRANSFER |
TRUE для возврата результата передачи в качестве строки из
curl_exec() вместо прямого вывода в браузер.
|
|
CURLOPT_SAFE_UPLOAD |
TRUE для отключения поддержки префикса @ для
загружаемых файлов в CURLOPT_POSTFIELDS , который
означает, что значения, переданные с @ могут безопасно
передаваться в виде полей. Вместо префикса можно использовать опцию CURLFiled.
|
Добавлена в PHP 5.5.0 со значением по умолчанию FALSE . В PHP 5.6.0
стала по умолчанию равна TRUE .
|
CURLOPT_SASL_IR |
TRUE для разрешения посылки инициирующего ответа в первом пакете.
|
Добавлено в cURL 7.31.10. Доступно с PHP 7.0.7. |
CURLOPT_SSL_ENABLE_ALPN |
FALSE для запрещения ALPN в SSL handshake (если на бэкенде SSL
libcurl собран с ее поддержкой), это можно использовать при общении http2.
|
Добавлено в cURL 7.36.0. Доступно с PHP 7.0.7. |
CURLOPT_SSL_ENABLE_NPN |
FALSE для запрещения ALPN в SSL handshake (если на бэкенде SSL
libcurl собран с ее поддержкой), это можно использовать при общении http2.
|
Добавлено в cURL 7.36.0. Доступно с PHP 7.0.7. |
CURLOPT_SSL_VERIFYPEER |
FALSE для остановки cURL от проверки сертификата узла сети.
Альтернативные сверяемые сертификаты могут быть указаны с помощью
параметра CURLOPT_CAINFO или директории с
сертификатами, указываемой параметром CURLOPT_CAPATH .
|
По умолчанию равно TRUE начиная с версии cURL 7.10.
Дистрибутив по умолчанию устанавливается начиная с версии cURL 7.10.
|
CURLOPT_SSL_VERIFYSTATUS |
TRUE для проверки статуса сертификата.
|
Добавлено в cURL 7.41.0. Доступно с PHP 7.0.7. |
CURLOPT_TCP_FASTOPEN |
TRUE для разрешения TCP Fast Open.
|
Добавлено в cURL 7.49.0. Доступно с PHP 7.0.7. |
CURLOPT_TFTP_NO_OPTIONS |
TRUE для запрета посылки запроса TFTP опций.
|
Добавлено в cURL 7.48.0. Доступно с PHP 7.0.7. |
CURLOPT_TRANSFERTEXT |
TRUE для использования ASCII режима при FTP передачах. При использовании LDAP
данные возвращаются простым текстом вместо HTML. В Windows системах поток
STDOUT не устанавливается в бинарный режим.
|
|
CURLOPT_UNRESTRICTED_AUTH |
TRUE для продолжения посылки логина и пароля при редиректах
(при использовании CURLOPT_FOLLOWLOCATION ),
даже при изменении имени хоста.
|
|
CURLOPT_UPLOAD |
TRUE для подготовки к загрузке файла на сервер.
|
|
CURLOPT_VERBOSE |
TRUE для вывода дополнительной информации. Записывает вывод в
поток STDERR, или файл, указанный параметром
CURLOPT_STDERR .
|
Для следующих значений параметра option
,
параметр value
должен быть типа
integer:
Параметр | Устанавливаемое значение value |
Замечания |
---|---|---|
CURLOPT_BUFFERSIZE |
Размер буфера, используемого при каждом чтении. Однако, нет никакой гарантии что данный запрос будет завершен. | Добавлен в версии cURL 7.10. |
CURLOPT_CLOSEPOLICY |
Одна из констант CURLCLOSEPOLICY_* .
|
Удалена в PHP 5.6.0. |
CURLOPT_CONNECTTIMEOUT |
Количество секунд ожидания при попытке соединения. Используйте 0 для бесконечного ожидания. | |
CURLOPT_CONNECTTIMEOUT_MS |
Количество миллисекунд ожидания при попытке соединения. Используйте 0 для бесконечного ожидания. Если библиотека libcurl скомпилирована с использованием стандартного системного преобразователя имен, то соединение будет по-прежнему использовать полносекундное ожидание в качестве тайм-аута с минимально допустимым тайм-аутом в 1 секунду. | Добавлен в версии cURL 7.16.2. Доступно, начиная с версии PHP 5.2.3. |
CURLOPT_DNS_CACHE_TIMEOUT |
Количество секунд, в течение которых в памяти хранятся DNS-записи. По умолчанию этот параметр равен 120 (2 минуты). | |
CURLOPT_EXPECT_100_TIMEOUT_MS |
Таймаут для Expect: 100-continue запросов в миллисекундах. По умолчанию 1000 миллисекунд. | Добавлено в cURL 7.36.0. Доступно с PHP 7.0.7. |
CURLOPT_FTPSSLAUTH |
Метод FTP аутентификации (в активном режиме): CURLFTPAUTH_SSL (сначала проверяется SSL), CURLFTPAUTH_TLS (сначала проверяется TLS) или CURLFTPAUTH_DEFAULT (cURL решает сама). | Добавлен в версии cURL 7.12.2. |
CURLOPT_HEADEROPT |
Что делать с заголовками. Одна из следующих опций:
CURLHEADER_UNIFIED : заголовки, указанные в
CURLOPT_HTTPHEADER будут использованы в запросах
к серверам и прокси. Если разрешена эта опция,
CURLOPT_PROXYHEADER не будет иметь эффекта.
CURLHEADER_SEPARATE : заголовки
CURLOPT_HTTPHEADER будут отсылаться только
на сервер, но не на прокси. На прокси заголовки должны посылаться
CURLOPT_PROXYHEADER . Обратите внимание, что
если запросы типа non-CONNECT будут слаться на прокси, то libcurl будет
посылать как серверные, так и прокси заголовки. Если же происходит
CONNECT, libcurl пошлет на прокси только заголовки CURLOPT_PROXYHEADER ,
а потом заголовки CURLOPT_HTTPHEADER только на сервер.
По умолчанию CURLHEADER_SEPARATE начиная с cURL
7.42.1, и CURLHEADER_UNIFIED до него.
|
Добавлено в cURL 7.37.0. Доступно с PHP 7.0.7. |
CURLOPT_HTTP_VERSION |
CURL_HTTP_VERSION_NONE (по умолчанию, CURL сама
выбирает используемую версию), CURL_HTTP_VERSION_1_0
(принудительное использование HTTP/1.0), или CURL_HTTP_VERSION_1_1
(принудительное использование HTTP/1.1).
|
|
CURLOPT_HTTPAUTH |
Используемые HTTP методы авторизации. Используемые параметры:
Можно использовать побитовый оператор | (или) для комбинации нескольких методов вместе. В этом случае cURL опросит сервер на предмет поддерживаемых методов авторизации и выберет лучший из них.
|
|
CURLOPT_INFILESIZE |
Ожидаемый размер файла, в байтах, при загрузке файла на удаленный сервер.
Учтите, что использование этой опции не остановит дальнейшую посылку данных,
превышающих это значение, так как посылаемые данные зависят от результата
CURLOPT_READFUNCTION .
|
|
CURLOPT_LOW_SPEED_LIMIT |
Верхний порог скорости передачи данных, в байтах в секунду. Проверка происходит
в течение CURLOPT_LOW_SPEED_TIME секунд, после чего
PHP считает передачу слишком медленной и прерывает ее.
|
|
CURLOPT_LOW_SPEED_TIME |
Максимальное количество секунд, в течение которых скорость передачи
не должна превышать CURLOPT_LOW_SPEED_LIMIT , иначе
PHP пометит передачу как слишком медленную и прекратит ее.
|
|
CURLOPT_MAXCONNECTS |
Максимальное количество постоянных соединений.
При достижении лимита для определения закрываемого соединения
используется параметр CURLOPT_CLOSEPOLICY .
|
|
CURLOPT_MAXREDIRS |
Максимальное количество принимаемых редиректов. Используйте этот параметр
вместе с параметром CURLOPT_FOLLOWLOCATION .
|
|
CURLOPT_PORT |
Альтернативный порт соединения. | |
CURLOPT_POSTREDIR |
Битовая маска, содержащая 1 (301 Moved Permanently), 2 (302 Found)
и 4 (303 See Other), чтобы задавать должен ли метод HTTP POST обрабатываться при
включенной опции CURLOPT_FOLLOWLOCATION , если
произошел указанный тип перенаправления.
|
Добавлено в cURL 7.19.1. Доступно с PHP 5.3.2. |
CURLOPT_PROTOCOLS |
Битовая маска из значений
Корректные значения протоколов:
|
Добавлен в версии cURL 7.19.4. |
CURLOPT_PROXYAUTH |
Методы авторизации HTTP, используемые при соединении с прокси-сервером.
Используйте те же самые битовые маски, которые были описаны у параметра
CURLOPT_HTTPAUTH . В данный момент для авторизации прокси
поддерживаются только CURLAUTH_BASIC и
CURLAUTH_NTLM .
|
Добавлен в версии cURL 7.10.7. |
CURLOPT_PROXYPORT |
Номер порта прокси-сервера, к которому осуществляется
соединение. Этот номер также может быть установлен
с помощью параметра CURLOPT_PROXY .
|
|
CURLOPT_PROXYTYPE |
Либо CURLPROXY_HTTP (по умолчанию), либо
CURLPROXY_SOCKS4 ,
CURLPROXY_SOCKS5 ,
CURLPROXY_SOCKS4A или
CURLPROXY_SOCKS5_HOSTNAME .
|
Добавлен в версии cURL 7.10. |
CURLOPT_REDIR_PROTOCOLS |
Битовая маска из значений CURLPROTO_* .
Данная битовая масска ограничивает протоколы используемые
libcurl при редиректе (при включенном параметре
CURLOPT_FOLLOWLOCATION ).
Это позволяет ограничить набор используемых протоколов при редиректах для
некоторых передач. По умолчанию, libcurl поддерживает все протоколы, кроме
FILE и SCP. В версиях, предшествовавших 7.19.4, перенаправление
использовалось для всех протоколов без исключения.
Смотрите также описание параметра CURLOPT_PROTOCOLS
для списка констант со значениями протоколов.
|
Добавлен в версии cURL 7.19.4. |
CURLOPT_RESUME_FROM |
Смещение начала передачи, в байтах. | |
CURLOPT_SSL_OPTIONS |
Устанавливает опции поведения SSL. Битовая маска из следующих констант:
CURLSSLOPT_ALLOW_BEAST : не пытаться найти обходной
путь для изъяна в безопасности протоколов SSL3 и TLS1.0.
CURLSSLOPT_NO_REVOKE : не производить проверку, отозван
ли сертификат, для тех SSL бэкендов, где оно есть.
|
Добавлено в cURL 7.25.0. Доступно с PHP 7.0.7. |
CURLOPT_SSL_VERIFYHOST |
Используйте 1 для проверки существования общего имени в сертификате SSL. Используйте 2 для проверки существования общего имени и также его совпадения с указанным хостом. В боевом окружении значение этого параметра должно быть 2 (установлено по умолчанию). | Поддержка значения 1 убрана в cURL 7.28.1 |
CURLOPT_SSLVERSION |
Одна из констант CURL_SSLVERSION_DEFAULT (0),
CURL_SSLVERSION_TLSv1 (1),
CURL_SSLVERSION_SSLv2 (2),
CURL_SSLVERSION_SSLv3 (3),
CURL_SSLVERSION_TLSv1_0 (4),
CURL_SSLVERSION_TLSv1_1 (5) или
CURL_SSLVERSION_TLSv1_2 (6).
|
|
CURLOPT_STREAM_WEIGHT |
Установить вес цифрового потока (число между 1 и 256). | Добавлено в cURL 7.46.0. Доступно с PHP 7.0.7. |
CURLOPT_TIMECONDITION |
Способ трактовки параметра CURLOPT_TIMEVALUE .
Используйте CURL_TIMECOND_IFMODSINCE для
возвращения страницы, только если она была изменена со времени,
указанного в параметре CURLOPT_TIMEVALUE .
Если страница не была изменена, вернется заголовок
"304 Not Modified", подразумевая, что
параметрCURLOPT_HEADER установлен в TRUE .
Используйте CURL_TIMECOND_IFUNMODSINCE
для обратного эффекта. По умолчанию используется
CURL_TIMECOND_IFMODSINCE .
|
|
CURLOPT_TIMEOUT |
Максимально позволенное количество секунд для выполнения cURL-функций. | |
CURLOPT_TIMEOUT_MS |
Максимально позволенное количество миллисекунд для выполнения cURL-функций. Если libcurl собрана с использованием обычного системного распознавателя имен, то этот промежуток соединения все еще будет использовать секундное округление таймаутов, с минимально разрешенным таймаутом в одну секунду. | Добавлен в версии cURL 7.16.2. Доступен, начиная с версии PHP 5.2.3. |
CURLOPT_TIMEVALUE |
Количество секунд, начиная с 1 января 1970 года. Это время
будет использовано параметром
CURLOPT_TIMECONDITION . По умолчанию,
используется параметр
CURL_TIMECOND_IFMODSINCE .
|
|
CURLOPT_MAX_RECV_SPEED_LARGE |
Если скорость скачки превысит это значение (указанное в байтах в секунду) в среднем в течение всей передачи, то скачка будет приостановлена для поддержания средней скорости меньше либо равной данному параметру. По умолчанию скорость не ограничивается. | Добавлен в версии cURL 7.15.5. Доступен, начиная с версии PHP 5.4.0. |
CURLOPT_MAX_SEND_SPEED_LARGE |
Если загрузка на сервер превысит это значение (указанное в байтах в секунду) в среднем в течение всей передачи, то загрузка будет приостановлена для поддержания средней скорости меньше либо равной данному параметру. По умолчанию скорость не ограничивается. | Добавлен в версии cURL 7.15.5. Доступен, начиная с версии PHP 5.4.0. |
CURLOPT_SSH_AUTH_TYPES |
Битовая маска, состоящая из одной или более констант:
CURLSSH_AUTH_PUBLICKEY ,
CURLSSH_AUTH_PASSWORD ,
CURLSSH_AUTH_HOST ,
CURLSSH_AUTH_KEYBOARD . Установите
CURLSSH_AUTH_ANY , чтобы libcurl сам выбрал одну из них.
|
Добавлено в cURL 7.16.1. |
CURLOPT_IPRESOLVE |
Позволяет приложению выбрать вид IP адреса, с которым определяется имя хоста.
Это необходимо, если используется имя хоста, которое получается с использованием
более одной версии IP адреса. Возможными значениями могут быть
CURL_IPRESOLVE_WHATEVER ,
CURL_IPRESOLVE_V4 ,
CURL_IPRESOLVE_V6 , и по умолчанию
CURL_IPRESOLVE_WHATEVER .
|
Добавлено в cURL 7.10.8. |
CURLOPT_FTP_FILEMETHOD |
Какой метод использовать, чтобы достать файл на сервере FTP. Варианты:
CURLFTPMETHOD_MULTICWD ,
CURLFTPMETHOD_NOCWD и
CURLFTPMETHOD_SINGLECWD .
|
Добавлено в cURL 7.15.1. Доступно с PHP 5.3.0. |
Для следующих значений параметра option
,
параметр value
должен быть типа
string:
Параметр | Устанавливаемое значение value |
Замечания |
---|---|---|
CURLOPT_CAINFO |
Имя файла, содержащего один или более сертификатов, с которыми
будут сверяться узлы. Этот параметр имеет смысл только при
использовании совместно с CURLOPT_SSL_VERIFYPEER .
|
Может потребоваться абсолютный путь. |
CURLOPT_CAPATH |
Директория, содержащая несколько CA сертификатов.
Используйте этот параметр совместно с
CURLOPT_SSL_VERIFYPEER .
|
|
CURLOPT_COOKIE |
Содержимое заголовка "Cookie: ", используемого в HTTP-запросе. Обратите внимание, что несколько cookies разделяются точкой с запятой с последующим пробелом (например, "fruit=apple; colour=red") | |
CURLOPT_COOKIEFILE |
Имя файла, содержащего cookies. Данный файл должен быть в формате Netscape или просто заголовками HTTP, записанными в файл. Если в качестве имени файла передана пустая строка, то cookies сохраняться не будут, но их обработка все еще будет включена. | |
CURLOPT_COOKIEJAR |
Имя файла, в котором будут сохранены все внутренние cookies текущей передачи после закрытия дескриптора, например, после вызова curl_close. | |
CURLOPT_CUSTOMREQUEST |
Собственный метод запроса, используемый вместо "GET" или "HEAD" при выполнении HTTP-запроса. Это полезно при запросах "DELETE" или других, более редких HTTP-запросах. Корректными значениями будут слова наподобие "GET", "POST", "CONNECT" и так далее; т.е. не вводите здесь всю строку с HTTP-запросом. Например, указание "GET /index.html HTTP/1.0\r\n\r\n" будет неправильным.
|
|
CURLOPT_DEFAULT_PROTOCOL |
Протокол по умолчанию, если он отсутствует в схеме URL. |
Добавлено в cURL 7.45.0. Доступно с PHP 7.0.7. |
CURLOPT_DNS_INTERFACE |
Устанавливает имя сетевого интерфейса, к которому привязан DNS. Это должно быть имя интерфейса, а не адрес. |
Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7. |
CURLOPT_DNS_LOCAL_IP4 |
Установить локальный IPv4 адрес, по которому доступне DNS. Адрес должен быть представлен в виде строки, содержащий одно число. |
Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7. |
CURLOPT_DNS_LOCAL_IP6 |
Установить локальный IPv6 адрес, по которому доступне DNS. Адрес должен быть представлен в виде строки, содержащий одно число. |
Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7. |
CURLOPT_EGDSOCKET |
Наподобие CURLOPT_RANDOM_FILE , за исключением
того, что имя файла устанавливается в сокет Entropy
Gathering Daemon.
|
|
CURLOPT_ENCODING |
Содержимое заголовка "Accept-Encoding: ". Это позволяет декодировать запрос. Поддерживаемыми кодировками являются "identity", "deflate" и "gzip". Если передана пустая строка, "", посылается заголовок, содержащий все поддерживаемые типы кодировок. | Добавлен в версии cURL 7.10. |
CURLOPT_FTPPORT |
Значение, которое будет использоваться для определения IP-адреса для команды "PORT" FTP-протокола. Команда "PORT" сообщает серверу, с каким IP-адресом он должен устанавливать соединение. Это может быть IP-адрес, имя хоста, имя сетевого интерфейса (под Unix), или просто '-' для использования системного IP-адреса по умолчанию. | |
CURLOPT_INTERFACE |
Имя используемого сетевого интерфейса. Может быть именем интерфейса, IP адресом или именем хоста. | |
CURLOPT_KEYPASSWD |
Пароль, который требуется для использования приватного ключа CURLOPT_SSLKEY
или CURLOPT_SSH_PRIVATE_KEYFILE .
|
Добавлено в cURL 7.16.1. |
CURLOPT_KRB4LEVEL |
Уровень безопасности KRB4 (Kerberos 4). Любое из следующих
значений (в порядке от слабого к самому сильному) корректно:
"clear",
"safe",
"confidential",
"private"..
Если указанная строка отличается от данных значений,
будет использовано значение "private".
Установка этого параметра в NULL полностью отключит
безопасность KRB4. На данный момент безопасность KRB4
работает только с FTP транзакциями.
|
|
CURLOPT_LOGIN_OPTIONS |
Используется для установки специфичных для протокола настроек логина,
таких как предпочитаемый механизм аутентификации "AUTH=NTLM" или "AUTH=*",
и должна использоваться совместно с CURLOPT_USERNAME .
|
Добавлено в cURL 7.34.0. Доступно с PHP 7.0.7. |
CURLOPT_PINNEDPUBLICKEY |
Устанавливает Устанавливает зафиксированный публичный ключ. Строка должны содержать имя файла, в котором лежит ваш зафиксированный публичный ключ. Ожидается формат файла "PEM" или "DEX". Строка также может быть числом в формате base64, закодированным sha256 с префиксом "sha256//" и разделенная точкой с запятой ";". | Добавлено в cURL 7.39.0. Доступно с PHP 7.0.7. |
CURLOPT_POSTFIELDS |
Все данные, передаваемые в HTTP POST-запросе.
Для передачи файла, укажите перед именем файла @, а
также используйте полный путь к файлу. Тип файла также может
быть указан с помощью формата ';type=mimetype',
следующим за именем файла. Этот параметр может быть передан
как в качестве url-закодированной строки, наподобие
'para1=val1¶2=val2&...', так и
в виде массива, ключами которого будут имена полей, а значениями
- их содержимое.
Если value является массивом,
заголовок Content-Type будет установлен в
значение multipart/form-data.
Начиная с версии PHP 5.2.0, при передаче файлов с префиксом
@, value должен быть
массивом.
С версии PHP 5.5.0, префикс @ устарел и
файлы можно отправлять с помощью CURLFile.
Префикс @ можно отключить, чтобы можно
было передавать значения, начинающиеся с @,
задав опцию CURLOPT_SAFE_UPLOAD в значение TRUE .
|
|
CURLOPT_PRIVATE |
Любые данные, которые должны ассоциироваться с этим дескриптором cURL.
Эти данные могут быть выбраны подзапросом опции
CURLINFO_PRIVATE функции
curl_getinfo(). cURL ничего не делает с этими данными.
Если используется множество дескрипторов cURL, эти данные обычно используются
как уникальный ключ для определения дескриптора cURL.
|
Добавлено в cURL 7.10.3. |
CURLOPT_PROXY |
HTTP-прокси, через который будут направляться запросы. | |
CURLOPT_PROXY_SERVICE_NAME |
Имя сервиса аутентификации прокси. | Добавлено в cURL 7.34.0. Доступно с PHP 7.0.7. |
CURLOPT_PROXYUSERPWD |
Логин и пароль, записанные в виде "[username]:[password]", используемые при соединении через прокси. | |
CURLOPT_RANDOM_FILE |
Имя файла, используемого для инициализации генератора случайных чисел для SSL. | |
CURLOPT_RANGE |
Диапазон данных, которые нужно загрузить, в формате "X-Y", причем либо X, либо Y могут быть опущены. Протокол HTTP также поддерживает передачу нескольких диапазонов, разделенных запятыми, они задаются в формате "X-Y,N-M". | |
CURLOPT_REFERER |
Содержимое заголовка "Referer: ", который будет использован в HTTP-запросе. | |
CURLOPT_SERVICE_NAME |
Имя сервиса аутентификации. | Добавлено в cURL 7.43.0. доступно с PHP 7.0.7. |
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 |
Строка, содержащая 32 шестнадцатеричных цифры. Строка должна являться контрольной суммой по алгоритму MD5 публичного ключа удаленного компьютера и libcurl будет сбрасывать соединение к удаленному хосту до тех пор, пока контрольная сумма не будет соответствовать публичному ключу. Эта опция предназначена только для передачи данных с помощью SCP и SFTP. | Добавлено в cURL 7.17.1. |
CURLOPT_SSH_PUBLIC_KEYFILE |
Имя файла для вашего публичного ключа. Если не задано, то libcurl использует по умолчанию файл $HOME/.ssh/id_dsa.pub, если переменная окружения HOME установлена и файл "id_dsa.pub" в текущей директории, если переменная HOME не установлена. | Добавлено в cURL 7.16.1. |
CURLOPT_SSH_PRIVATE_KEYFILE |
Имя файла для вашего приватного ключа. Если не задано, то libcurl использует по
умолчанию файл $HOME/.ssh/id_dsa, если переменная окружения HOME установлена и
файл "id_dsa" в текущей директории, если переменная HOME не установлена.
Если файл защищен паролем, установите пароль с помощью
CURLOPT_KEYPASSWD .
|
Добавлено в cURL 7.16.1. |
CURLOPT_SSL_CIPHER_LIST |
Список шифров, используемый в SSL-передачах. Например, RC4-SHA и TLSv1 являются корректными списками шифров. | |
CURLOPT_SSLCERT |
Имя файла с корректно отформатированным PEM-сертификатом. | |
CURLOPT_SSLCERTPASSWD |
Пароль, необходимый для использования сертификата
CURLOPT_SSLCERT .
|
|
CURLOPT_SSLCERTTYPE |
Формат сертификата. Поддерживаются форматы "PEM" (по умолчанию), "DER" и "ENG". | Добавлен в версии cURL 7.9.3. |
CURLOPT_SSLENGINE |
Идентификатор механизма шифрования для закрытого ключа SSL,
указанного в параметре CURLOPT_SSLKEY .
|
|
CURLOPT_SSLENGINE_DEFAULT |
Идентификатор механизма шифрования, используемого для ассиметричных операций шифрования. | |
CURLOPT_SSLKEY |
Имя файла с закрытым ключом SSL. | |
CURLOPT_SSLKEYPASSWD |
Тайный пароль, необходимый для использования закрытого
ключа SSL, указанного параметром
|
|
CURLOPT_SSLKEYTYPE |
Тип закрытого ключа SSL, указанного в параметре
CURLOPT_SSLKEY . Поддерживаются следующие
типы ключей:
"PEM" (по умолчанию), "DER"
и "ENG".
|
|
CURLOPT_UNIX_SOCKET_PATH |
Разрешает использовать доменные сокеты UNIX в качестве конечной точки для соединения и устанавливает путь к ним равным заданной строке (string). | Добавлено в cURL 7.40.0. Доступно с PHP 7.0.7. |
CURLOPT_URL |
Загружаемый URL. Данный параметр может быть также установлен при инициализации сеанса с помощью curl_init(). | |
CURLOPT_USERAGENT |
Содержимое заголовка "User-Agent: ", посылаемого в HTTP-запросе. | |
CURLOPT_USERNAME |
Ипя пользователя для аутентификации. | Добавлено в cURL 7.19.1. Доступно с PHP 5.5.0. |
CURLOPT_USERPWD |
Логин и пароль, используемые при соединении, указанные в формате "[username]:[password]". | |
CURLOPT_XOAUTH2_BEARER |
Задает токен доступа OAuth 2.0. | Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7. |
Для следующих значений параметра option
,
параметр value
должен быть массивом:
Параметр | Устанавливаемое значение value |
Замечания |
---|---|---|
CURLOPT_CONNECT_TO |
Соединяться с указанный хостом по указанному порту, игнорируя URL. Принимает массив строк формата HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT. | Added in cURL 7.49.0. Available since PHP 7.0.7. |
CURLOPT_HTTP200ALIASES |
Массив HTTP 200 ответов, которые будут трактоваться корректными ответами, а не ошибочными. | Добавлен в версии cURL 7.10.3. |
CURLOPT_HTTPHEADER |
Массив устанавливаемых HTTP-заголовков, в формате
array('Content-type: text/plain', 'Content-length: 100')
|
|
CURLOPT_POSTQUOTE |
Массив FTP-команд, выполняемых на сервере, после выполнения FTP-запроса. | |
CURLOPT_PROXYHEADER |
Массив пользовательских HTTP заголовков для отправки на прокси | Добавлено в cURL 7.37.0. Доступно с PHP 7.0.7. |
CURLOPT_QUOTE |
Массив FTP-команд, выполняемых на сервере, перед выполнением FTP-запроса. |
Для следующих значений параметра option
,
параметр value
должен быть потоковым
дескриптором (возвращаемым, например, функцией fopen()):
Параметр | Устанавливаемое значение value |
---|---|
CURLOPT_FILE |
Файл, в который будет записан результат передачи. По умолчанию используется поток вывода STDOUT (окно браузера). |
CURLOPT_INFILE |
Файл, из которого должно идти чтение данных, при загрузке на сервер. |
CURLOPT_STDERR |
Альтернативное файл для вывода ошибок, используемый вместо потока ошибок STDERR. |
CURLOPT_WRITEHEADER |
Файл, в который будут записаны заголовки текущей операции. |
Для следующих значений параметра option
,
параметр value
должен быть правильным именем функции
или замыканием:
Параметр | Устанавливаемое значение value |
---|---|
CURLOPT_HEADERFUNCTION |
Callback-функция принимает два параметра. Первым параметром является дескриптор cURL, вторым параметром является строка с записываемыми заголовками. Заголовки должны быть записаны с помощью данной callback-функции. Должна возвратить количество записанных байт. |
CURLOPT_PASSWDFUNCTION |
Callback-функция принимает три параметра. Первым параметром является дескриптор cURL, вторым параметром является строка с запросом пароля, третьим параметром является максимальная длина пароля. Должна возвратить строку, содержащую пароль. |
CURLOPT_PROGRESSFUNCTION |
Callback-функция принимает пять параметров. Первый является декскриптором cURL, второй - общим количеством байт, которое ожидается загрузить с сервера, третий - количество уже загруженных байт, четвертый - общее количество байт, которое ожидается отправить на сервер, и пятый - количество уже отправленных байт.
Можно вернуть ненулевое значение, чтобы отменить передачу.
В этом случае будет выставлена ошибка |
CURLOPT_READFUNCTION |
Callback-функция принимает три параметра.
Первым параметром является дескриптор cURL,
вторым параметром является ресурс потока, переданный
cURL через опцию CURLOPT_INFILE ,
а третьим параметром является максимально разрешенное
количество данных для чтения.
Callback-функция должна возвратить строку, с длиной
не превышающей запрошенного количества данных, обычно
с помощью чтения из переданного потокового ресурса.
Должна возвратить пустую строку для сигнала о конце файла
EOF.
|
CURLOPT_WRITEFUNCTION |
Callback-функция принимает два параметра. Первым параметром является дескриптор cURL, а вторым параметром является строка с записываемыми данными. Данные должны быть сохранены с помощью данной функции. Она должна возвратить точное количество записанных байт, иначе закачка будет прервана с ошибкой. |
Другие значения:
Параметр | Устанавливаемое значение value |
---|---|
CURLOPT_SHARE |
Результат выполнения функции curl_share_init(). Позволяет обработчику cURL использовать данные из общего обработчика. |
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Версия | Описание |
---|---|
7.0.7 |
Добавлены CURL_HTTP_VERSION_2 , CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE ,
CURL_HTTP_VERSION_2TLS , CURL_REDIR_POST_301 ,
CURL_REDIR_POST_302 , CURL_REDIR_POST_303 ,
CURL_REDIR_POST_ALL , CURL_VERSION_KERBEROS5 ,
CURL_VERSION_PSL , CURL_VERSION_UNIX_SOCKETS ,
CURLAUTH_NEGOTIATE , CURLAUTH_NTLM_WB ,
CURLFTP_CREATE_DIR , CURLFTP_CREATE_DIR_NONE ,
CURLFTP_CREATE_DIR_RETRY , CURLHEADER_SEPARATE ,
CURLHEADER_UNIFIED , CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE ,
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE , CURLMOPT_MAX_HOST_CONNECTIONS ,
CURLMOPT_MAX_PIPELINE_LENGTH , CURLMOPT_MAX_TOTAL_CONNECTIONS ,
CURLOPT_CONNECT_TO , CURLOPT_DEFAULT_PROTOCOL ,
CURLOPT_DNS_INTERFACE , CURLOPT_DNS_LOCAL_IP4 ,
CURLOPT_DNS_LOCAL_IP6 , CURLOPT_EXPECT_100_TIMEOUT_MS ,
CURLOPT_HEADEROPT , CURLOPT_LOGIN_OPTIONS ,
CURLOPT_PATH_AS_IS , CURLOPT_PINNEDPUBLICKEY ,
CURLOPT_PIPEWAIT , CURLOPT_PROXY_SERVICE_NAME ,
CURLOPT_PROXYHEADER , CURLOPT_SASL_IR ,
CURLOPT_SERVICE_NAME , CURLOPT_SSL_ENABLE_ALPN ,
CURLOPT_SSL_ENABLE_NPN , CURLOPT_SSL_FALSESTART ,
CURLOPT_SSL_VERIFYSTATUS , CURLOPT_STREAM_WEIGHT ,
CURLOPT_TCP_FASTOPEN , CURLOPT_TFTP_NO_OPTIONS ,
CURLOPT_UNIX_SOCKET_PATH , CURLOPT_XOAUTH2_BEARER ,
CURLPROTO_SMB , CURLPROTO_SMBS ,
CURLPROXY_HTTP_1_0 , CURLSSH_AUTH_AGENT и
CURLSSLOPT_NO_REVOKE .
|
5.6.0 |
Опция CURLOPT_SAFE_UPLOAD теперь имеет значение по умолчанию равное TRUE .
|
5.6.0 |
Удалена опция CURLOPT_CLOSEPOLICY и связанные с ней значения.
|
5.5.0 |
Ресурс cURL добавлен первым аргументом в callback-функцию
CURLOPT_PROGRESSFUNCTION .
|
5.5.0 |
Добавлена опция CURLOPT_SHARE .
|
5.3.0 |
Добавлена опция CURLOPT_PROGRESSFUNCTION .
|
5.2.10 |
Добавлены параметры CURLOPT_PROTOCOLS и
CURLOPT_REDIR_PROTOCOLS .
|
5.2.4 |
Добавлено CURLOPT_PRIVATE .
|
5.1.0 |
Добавлены параметры CURLOPT_AUTOREFERER ,
CURLOPT_BINARYTRANSFER ,
CURLOPT_FTPSSLAUTH ,
CURLOPT_PROXYAUTH и
CURLOPT_TIMECONDITION .
|
5.0.0 |
Добавлены параметры CURLOPT_FTP_USE_EPRT ,
CURLOPT_NOSIGNAL ,
CURLOPT_UNRESTRICTED_AUTH ,
CURLOPT_BUFFERSIZE ,
CURLOPT_HTTPAUTH ,
CURLOPT_PROXYPORT ,
CURLOPT_PROXYTYPE ,
CURLOPT_SSLCERTTYPE и
CURLOPT_HTTP200ALIASES .
|
Пример #1 Инициализация сеанса CURL и загрузка web-страницы
<?php
// создание нового ресурса cURL
$ch = curl_init();
// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// загрузка страницы и выдача её браузеру
curl_exec($ch);
// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>
Пример #2 Закачка файла (устарело с PHP 5.5.0)
<?php
/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/
$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); // required as of PHP 5.6.0
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
?>
Результат выполнения данного примера:
Array ( [name] => Foo ) Array ( [file] => Array ( [name] => test.png [type] => image/png [tmp_name] => /tmp/phpcpjNeQ [error] => 0 [size] => 279 ) )
Замечание:
Передача массива в
CURLOPT_POSTFIELDS
закодирует данные в виде multipart/form-data, тогда как передача URL-кодированной строки закодирует данные в виде application/x-www-form-urlencoded.