curl_setopt

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_setopt — Встановлює параметр для передачі cURL

Опис

curl_setopt(CurlHandle $handle, int $option, mixed $value): bool

Встановлює параметр для дескриптора сеансу cURL.

Список параметрів

handle

Дескриптор cURL, отриманий з curl_init()

option

ПараметрCURLOPT_XXX, який потрібно встановити.

value

Значение для параметраoption

Значение параметраvalue має бути логічним (bool) для наступних значень параметра option :

ПараметрУстанавливаемое значение valueПримечания
CURLOPT_AUTOREFERERtrue для автоматичного встановлення поля Referer: у запитах, перенаправлених заголовком Location:
CURLOPT_COOKIESESSIONtrue для вказівки поточного сеансу розпочати нову сесію cookies. Це змусить модуль libcurl проігнорувати всі сесійні cookies з попереднього сеансу, які він збирається завантажити. За замовчуванням модуль libcurl завжди зберігає та завантажує всі cookies, незалежно від того, чи є вони сесійними чи ні. "Сесійні" cookies - це cookies без терміну закінчення, які повинні існувати тільки для поточної сесії.
CURLOPT_CERTINFOtrue для виведення інформації про сертифікат SSL у потік STDERR при безпечних з'єднаннях.Додано до cURL 7.19.1. Для коректної роботи вимагає увімкненої опції CURLOPT_VERBOSE
CURLOPT_CONNECT_ONLYtrue повідомляє бібліотеці, щоб вона провела необхідні аутентифікацію проксі та налаштування з'єднання, але не передавала дані. Ця опція реалізована для HTTP, SMTP та POP3.Додано до 7.15.2.
CURLOPT_CRLFtrue для перетворення кінців рядків Unix на CRLF.
CURLOPT_DISALLOW_USERNAME_IN_URLtrue для заборони URL-адрес, що містять ім'я користувача. Стандартні імена користувачів дозволені (0).Додано до cURL 7.61.0. Доступно з PHP 7.3.0.
CURLOPT_DNS_SHUFFLE_ADDRESSEStrue для перемішування порядку всіх повернутих адрес так, щоб вони вибиралися у випадковому порядку, коли ім'я дозволено і повернено більше однієї IP-адреси. Тому IPv4 можна вибрати до IPv6 або навпаки.Додано до cURL 7.60.0. Доступно з PHP 7.3.0.
CURLOPT_HAPROXYPROTOCOLtrue для надсилання заголовка протоколу HAProxy PROXY v1 на початку з'єднання. За промовчанням — не надсилати заголовок.Додано до cURL 7.60.0. Доступно з PHP 7.3.0.
CURLOPT_SSH_COMPRESSIONtrue для увімкнення вбудованого стиснення SSH. Це запит, а вказівка; сервер може і не виконати.Додано до cURL 7.56.0. Доступно з PHP 7.3.0.
CURLOPT_DNS_USE_GLOBAL_CACHEtrue для дозволу назв через глобальний кеш DNS. Цей параметр не є безпечним. Він умовно включений за замовчуванням, якщо PHP зібраний для потоконебезпечної роботи (CLI, FCGI, Apache2-Prefork тощо).
CURLOPT_FAILONERRORtrue для докладного звіту при невдачі, якщо отриманий HTTP-код більший або дорівнює 400. Стандартна поведінка повертає сторінку як звичайно, ігноруючи код.
CURLOPT_SSL_FALSESTARTtrue для дозволу хибного старту TLS.Додано cURL 7.42.0. Доступно з PHP 7.0.7.
CURLOPT_FILETIMEtrue для отримання дати модифікації видаленого документа. Дату одержують, викликаючи функцію curl_getinfo() з опцією CURLINFO_FILETIME
CURLOPT_FOLLOWLOCATIONtrue для дотримання будь-якого заголовка «Location: », надісланому сервером у відповіді. Дивіться також CURLOPT_MAXREDIRS
CURLOPT_FORBID_REUSEtrue, щоб з'єднання примусово закривалося, коли обробка завершилася, і не потрапляло в пул відкритих з'єднань було недоступне для повторної передачі.
CURLOPT_FRESH_CONNECTtrue для примусового встановлення нового з'єднання замість закешованого.
CURLOPT_FTP_USE_EPRTtrue для надсилання команд EPRT (і LPRT) під час активних FTP-завантажень. Вказують false, щоб вимкнути команди EPRT та LPRT та використовувати лише команду PORT.
CURLOPT_FTP_USE_EPSVtrue для початкової спроби команди EPSV під час FTP-передач. Якщо команда не вдалася, буде здійснено зворотний відкат до PASV. Встановіть у false для вимкнення EPSV.
CURLOPT_FTP_CREATE_MISSING_DIRStrue для створення відсутніх директорій, якщо FTP операція виявляє неіснуючий шлях.
CURLOPT_FTPAPPENDtrue для запису в кінець віддаленого файлу замість перезаписування.
CURLOPT_TCP_NODELAYtrue для відключення алгоритму Нейгла, який намагається зменшити кількість дрібних пакетів у мережі.Доступна для версій, зібраних з libcurl 7.11.2 або новіше.
CURLOPT_FTPASCIIПсевдоним**CURLOPT_TRANSFERTEXT**. . Використовуйте його натомість.
CURLOPT_FTPLISTONLYtrue для повернення тільки списку імен із FTP-директорії.
CURLOPT_HEADERtrue для включення заголовків у висновок.
CURLINFO_HEADER_OUTtrue для відстеження рядка запиту дескриптора.Префікс CURLINFO_ використаний навмисно.
CURLOPT_HTTP09_ALLOWEDВизначає, чи дозволити відповіді HTTP/0.9. З версії модуля libcurl 7.66.0 значення за промовчанням false; раніше за умовчанням було логічне trueДоступна з PHP 7.3.15 та 7.4.3, відповідно, якщо зібрано з модулем libcurl >= 7.64.0
CURLOPT_HTTPGETtrue скидання методу HTTP-запиту на метод GET. Оскільки метод GET встановлено за замовчуванням, цей параметр необхідний лише у випадку, якщо метод запиту було змінено раніше.
CURLOPT_HTTPPROXYTUNNELtrue для тунелювання через вказаний HTTP-проксі.
CURLOPT_HTTP_CONTENT_DECODINGfalse для отримання необробленого тіла HTTP-відповіді.Доступно, якщо зібрано з libcurl >= 7.16.2.
CURLOPT_KEEP_SENDING_ON_ERRORtrue для продовження посилати тіло запиту, якщо HTTP-код, що повертається, дорівнює або більше 300. Дія за замовчуванням — зупинити відправку і закрити потік або з'єднання. Підходить для ручної автентифікації NTLM. Більшості програм ця опція не потрібна.Доступно з PHP 7.3.0, якщо зібрано з libcurl >= 7.51.0.
CURLOPT_MUTEtrue для повного вимкнення повідомлень функцій cURL.Видалено в cURL 7.15.5 (Можна використовувати опцію CURLOPT_RETURNTRANSFER)
CURLOPT_NETRCtrue для зчитування файлу ~/.netrc, щоб знайти логін та пароль для віддаленого сайту, з яким встановлюється з'єднання.
CURLOPT_NOBODYtrue для виключення тіла відповіді з виводу. Метод запиту встановлюється у HEAD. Зміна цього параметра false не змінює його назад у GET.
CURLOPT_NOPROGRESS
true для скасування індикатора прогресу під час передачі cURL.

Зауваження :

PHP автоматично встановлює цей параметр у true, змінюйте його тільки для налагоджувальних цілей.

CURLOPT_NOSIGNAL true для ігнорування будь-якої функції cURL, що надсилає сигнали PHP процесу. Цей параметр увімкнено за замовчуванням у багатопотокових SAPI для коректної роботи параметрів часу очікування. | Доданий до 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_SASL_IR trueдля разрешения отправки инициирующего ответа в первом пакете. | Добавлено в cURL 7.31.10. Доступно с PHP 7.0.7. | |CURLOPT_SSL_ENABLE_ALPN false для відключення ALPN у SSL-рукостисканні (якщо на бекенді SSL-модуль libcurl зібраний з її підтримкою), це можна використовувати при з'єднанні http2. | Додано до cURL 7.36.0. Доступно з PHP 7.0.7. | | CURLOPT_SSL_ENABLE_NPN false для відключення ALPN в SSL-рукостисканні (якщо на бекенд SSL libcurl зібраний з її підтримкою), це можна використовувати при з'єднанні http2. | Додано до cURL 7.36.0. Доступно з PHP 7.0.7. | | CURLOPT_SSL_VERIFYPEER false для зупинки URL від перевірки сертифіката вузла мережі. Альтернативні сертифікати для перевірки можуть бути вказані у параметрі CURLOPT_CAINFO або директорії із сертифікатами, що вказується параметром CURLOPT_CAPATH. | Починаючи з версії cURL 7.10 значення за промовчанням дорівнює true. Стандартний дистрибутив встановлюється з версією cURL 7.10. | | CURLOPT_SSL_VERIFYSTATUS trueдля проверки статуса сертификата. | Добавлено в cURL 7.41.0. Доступно с PHP 7.0.7. | |CURLOPT_PROXY_SSL_VERIFYPEER false для зупинки cURL від перевірки сертифіката бенкету. Альтернативні сертифікати для перевірки можуть бути наведені за допомогою параметра CURLOPT_CAINFO, а каталог сертифікатів може бути вказаний за допомогою параметра CURLOPT_CAPATHЕсли установлено значение false, проверка сертификата однорангового узла завершается успешно несмотря ни на что. |true за замовчуванням. Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_SAFE_UPLOAD | Завжди true, це відключає підтримку префікса @ для завантаження файлів у CURLOPT_POSTFIELDS і означає, що значення, що починаються з @, можуть бути безпечно передані як поля. Натомість для завантаження файлів можна використовувати об'єкт CURLFile. CURLOPT_SUPPRESS_CONNECT_HEADERS true для придушення заголовків відповідей проксі-сервера CONNECT з користувальницьких callback-функцій CURLOPT_HEADERFUNCTION і CURLOPT_WRITEFUNCTION, когда установлена опцияCURLOPT_HTTPPROXYTUNNEL та виконується запит CONNECT. | Додано до cURL 7.54.0. Доступно з PHP 7.3.0. | | 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 повинен бути типу int:

ПараметрУстанавливаемое значение valueЗамечания
CURLOPT_BUFFERSIZEРозмір буфера (в байтах), який виділятиметься при кожному читанні. Однак, немає гарантії, що запит на отримання такого розміру буде виконаний.Доданий до версії cURL 7.10.
CURLOPT_CONNECTTIMEOUTКількість секунд очікування, відведених спробу з'єднання. Налаштування значення 0 призведе до необмеженого очікування.
CURLOPT_CONNECTTIMEOUT_MSКількість мілісекунд очікування, відведених на спробу з'єднання. Налаштування значення 0 призведе до необмеженого очікування. Якщо бібліотека libcurl скомпільована зі стандартним системним перетворювачем імен, то ця частина з'єднання, як і раніше, буде використовувати повносекундну роздільну здатність інтервалів з мінімальним допустимим часом очікування в 1 секунду.Доданий до версії cURL 7.16.2.
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_HAPPY_EYEBALLS_TIMEOUT_MSПеревага протоколу IPv6 для алгоритму Happy Eyeballs. Алгоритм Happy Eyeballs намагається підключитися як до IPv4 адрес, так і до IPv6 адрес для хостів з подвійним стеком, віддаючи перевагу спочатку IPv6 на час очікування в мілісекундах. Значення за промовчанням — CURL_HET_DEFAULT, що становить 200 мілісекунд.Додано до cURL 7.59.0. Доступно з PHP 7.3.0.
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_VERSIONCURL_HTTP_VERSION_NONE (значення за замовчуванням; CURL сам вирішує, яку версію використовувати), CURL_HTTP_VERSION_1_0 (примусово з'єднуватись за протоколом HTTP/1.0), CURL_HTTP_VERSION_1_1 (примусово з'єднуватись за протоколом HTTP/1.1), CURL_HTTP_VERSION_2_0 (спробувати з'єднатися за протоколом HTTP/2.0), CURL_HTTP_VERSION_2 (псевдонім CURL_HTTP_VERSION_2_0CURL_HTTP_VERSION_2TLS (спробувати з'єднатися тільки за протоколом HTTP/2.0 через TLS (HTTPS)) або CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (виконувати HTTP-запити без TLS за протоколом HTTP/2.0 без повернення до HTTP/1.1).
CURLOPT_HTTPAUTH
Методи HTTP-автентифікації. Параметри: CURLAUTH_BASICCURLAUTH_DIGESTCURLAUTH_GSSNEGOTIATECURLAUTH_NTLMCURLAUTH_AWS_SIGV4CURLAUTH_ANY і CURLAUTH_ANYSAFE

Можна використовувати побітовий оператор (або) для комбінації кількох методів разом. У цьому випадку cURL опитає сервер на предмет підтримуваних методів авторизації та вибере найкращий із них.

CURLAUTH_ANY встановлює всі біти. cURL автоматично вибере той, який вважає за найбезпечніший.

CURLAUTH_ANYSAFE встановлює всі біти крім CURLAUTH_BASIC. cURL автоматично вибере той, який вважає за найбезпечніший.

CURLOPT_INFILESIZE | Очікуваний розмір файлу в байтах під час завантаження файлу на віддалений сервер. Врахуйте, що використання цієї опції не зупинить подальшу посилку даних, що перевищують це значення, оскільки дані, що посилаються, залежать від результату CURLOPT_READFUNCTION. CURLOPT_LOW_SPEED_LIMIT | Верхній поріг швидкості передачі даних в байтах за секунду. Перевірка відбувається протягом CURLOPT_LOW_SPEED_TIME секунд, після чого PHP вважає передачу надто повільною та перериває її. | | | CURLOPT_LOW_SPEED_TIME | Максимальна кількість секунд, протягом яких швидкість передачі не повинна перевищувати значення опції CURLOPT_LOW_SPEED_LIMIT, інакше PHP помітить передачу як надто повільну та припинить її. | | | CURLOPT_MAIL_RCPT_ALLLOWFAILS | Вирішити помилки для команди RCPT TO для деяких одержувачів. | При надсиланні даних кільком одержувачам cURL перериває SMTP-діалог, якщо хоча б для одного з одержувачів на команду RCPT TO була помилка. Цей параметр повідомляє cURL, щоб він ігнорував помилки і продовжував з доступними одержувачами. Якщо всі одержувачі викликали помилку команди RCPT TO і цей прапор встановлений, cURL перерве діалог SMTP і поверне помилку, отриману від останньої команди RCPT TO. | | | CURLOPT_MAXAGE_CONN | Максимальний час очікування, протягом якого можна повторно використовувати існуюче з'єднання. За замовчуванням максимальний термін встановлено на 118секунд. | | |CURLOPT_MAXFILESIZE_LARGE | Максимальний розмір файлу в байтах для скачування. Якщо розмір запитаного файлу виявиться більшим за це значення, передача не почнеться і повернеться значення константи CURLE_FILESIZE_EXCEEDED. Розмір файлу не завжди відомий до початку завантаження, і на завантаження таких файлів цей параметр не вплине, навіть якщо в результаті розмір файлу перевищує встановлену межу. | | | CURLOPT_MAXLIFETIME_CONN | Максимальний час у секундах з моменту встановлення з'єднання, протягом якого можна розглядати існуюче з'єднання для повторної передачі. Якщо з'єднання буде знайдено в кеші, який старше цього значення, воно не буде розглянуто для повторної передачі і буде закрито, як тільки всі незавершені передачі будуть завершені. За промовчанням — 0 секунд, що означає, що вимкнено і всі з'єднання доступні для повторної передачі. | | | CURLOPT_MAXCONNECTS | Максимальна кількість постійних з'єднань. При досягненні ліміту найстаріше з'єднання в кеші закривається, щоб запобігти збільшенню кількості відкритих з'єднань. | | | CURLOPT_MAXREDIRS | Максимальна кількість перенаправлень, що приймаються. Використовуйте цей параметр разом із параметром **CURLOPT_FOLLOWLOCATION**Значение по умолчанию20 встановлено для запобігання нескінченним перенаправленням. Значення -1 дозволяє нескінченні перенаправлення, а відхиляє всі перенаправлення. | | | CURLOPT_PORT | Альтернативний порт з'єднання. | | | CURLOPT_POSTREDIR | Бітова маска, що містить 1 (301 Moved Permanently), 2 (302 Found) і 4 (303 See Other), щоб задавати чи повинен метод HTTP POST оброблятися при включеній опції CURLOPT_FOLLOWLOCATION, якщо вказаний тип перенаправлення. | Додано до cURL 7.19.1. | | CURLOPT_PROTOCOLS

Битовая маска из значений**CURLPROTO_***. Ця маска встановить обмеження на те, які протоколи бібліотека libcurl зможе використовувати під час передачі. Це дозволяє налаштувати бібліотеку libcurl на роботу з широким діапазоном протоколів, але, як і раніше, обмежити роботу окремих передач, щоб було дозволено використовувати лише частину з них. За замовчуванням модуль libcurl прийматиме всі підтримувані протоколи. Дивіться також параметр CURLOPT_REDIR_PROTOCOLS

Коректні значення протоколів: CURLPROTO_HTTP CURLPROTO_HTTPS CURLPROTO_FTP CURLPROTO_FTPS CURLPROTO_SCP CURLPROTO_SFTP CURLPROTO_TELNET CURLPROTO_LDAP CURLPROTO_LDAPS CURLPROTO_DICT CURLPROTO_FILE CURLPROTO_TFTP CURLPROTO_MQTT CURLPROTO_ALL

| Добавлен в 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_SOCKS5_AUTH

Метод аутентифікації SOCKS5, який потрібно використати. Варіанти: CURLAUTH_BASIC CURLAUTH_GSSAPI CURLAUTH_NONE

Побітовий оператор (або) можна використовувати для поєднання кількох методів. Якщо це буде зроблено, cURL опитуватиме сервер, щоб з'ясувати, які методи він підтримує, і вибрати найкращий.

CURLAUTH_BASIC дозволяє аутентифікацію по constant користувача/пароля.

CURLAUTH_GSSAPI дозволяє аутентифікацію GSS-API.

CURLAUTH_NONE не дозволяє аутентифікацію.

По умолчаниюCURLAUTH_BASIC|CURLAUTH_GSSAPI. Встановіть дійсне ім'я користувача та пароль за допомогою параметра CURLOPT_PROXYUSERPWD

| Доступно з 7.3.0 та curl >= 7.55.0. | | CURLOPT_SSL_OPTIONS | Встановлює параметри поведінки SSL. Бітова маска з наступних констант: CURLSSLOPT_ALLOW_BEAST: не намагатися знайти обхідний шлях для вад у безпеці протоколів SSL3 і TLS1.0 . CURLSSLOPT_NO_REVOKE: відключити перевірку на предмет того, чи сертифікат відкликаний, для тих SSL-бекендів, де така поведінка присутня . CURLSSLOPT_AUTO_CLIENT_CERT: автоматично знаходити та використовувати сертифікат клієнта для аутентифікації на запит сервера. Ця опція підтримується лише модулем постачальника служб безпеки Schannel (власний SSL-модуль Windows) . CURLSSLOPT_NATIVE_CA: використовувати власне сховище довірених центрів сертифікації (Certificate authority, CA) операційної системи для перевірки сертифіката. Працює лише у Windows із встановленим збиранням бібліотеки OpenSSL. Це експериментальна опція та її поведінка може змінитися у майбутньому . CURLSSLOPT_NO_PARTIALCHAIN: не приймати ланцюжки «приватних» сертифікатів, які cURL в інших випадках робить за замовчуванням. Ця опція підтримується лише для бібліотеки OpenSSL і призведе до помилки перевірки сертифіката, якщо ланцюжок закінчується на проміжному, а не на кореневому сертифікаті . CURLSSLOPT_REVOKE_BEST_EFFORT: ігнорувати перевірку на предмет того, чи сертифікат відкликаний, у разі відсутності або відключення точок поширення для тих SSL-бекендів, де така поведінка присутня. Ця опція підтримується лише модулем постачальника служб безпеки Schannel (власний модуль SSL Windows). Якщо вказано разом із опцією CURLSSLOPT_NO_REVOKE, последняя будет в приоритете. | Добавлено в cURL 7.25.0. Доступно с PHP 7.0.7. | |CURLOPT_SSL_VERIFYHOST | Вказують значення , щоб переконатися, що поле спільного імені або поле альтернативного імені суб'єкта сертифіката вузла SSL відповідає вказаному імені хоста. Значення вказують, щоб не перевіряти імена. Значення не слід використовувати. У бойовому оточенні значення цього параметра має бути (установлено по умолчанию). | Поддержка значения убрана в cURL 7.28.1 | |CURLOPT_SSLVERSION| Одна из констант**CURL_SSLVERSION_DEFAULT** CURL_SSLVERSION_TLSv1 CURL_SSLVERSION_SSLv2 CURL_SSLVERSION_SSLv3 CURL_SSLVERSION_TLSv1_0 CURL_SSLVERSION_TLSv1_1 CURL_SSLVERSION_TLSv1_2(6) или**CURL_SSLVERSION_TLSv1_3** (7). Максимальну версію TLS можна встановити за допомогою однієї з констант CURL_SSLVERSION_MAX_*. Також можна АБО одну з констант CURL_SSLVERSION_* з однією з констант CURL_SSLVERSION_MAX_*. . CURL_SSLVERSION_MAX_DEFAULT(максимальна версія, що підтримується бібліотекою), CURL_SSLVERSION_MAX_TLSv1_0 CURL_SSLVERSION_MAX_TLSv1_1 CURL_SSLVERSION_MAX_TLSv1_2, or**CURL_SSLVERSION_MAX_TLSv1_3**

Зауваження :

Рекомендовано не встановлювати цю опцію та залишити значення за замовчуванням. Установка в 2 або 3 небезпечна і допускає застосування відомих уразливостей SSLv2 і SSLv3.

CURLOPT_PROXY_SSL_OPTIONS | Вкажіть параметри поведінки SSL-проксі, які є бітовою маскою будь-якої з наступних констант: CURLSSLOPT_ALLOW_BEAST: не намагатися використовувати обхідні шляхи для усунення вразливості протоколів SSL3 і TLS1.0 . CURLSSLOPT_NO_REVOKE: відключити перевірку на предмет того, чи сертифікат відкликаний, для тих бекендів SSL, де така поведінка присутня. (Curl >= 7.44.0) CURLSSLOPT_NO_PARTIALCHAIN: не приймати «часткові» ланцюжки сертифікатів, що інакше робиться за замовчуванням. (Curl> = 7.68.0) | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_SSL_VERIFYHOST| Значение устанавливают для проверки в полях имени сертификата прокси-сервера HTTPS по отношению к имени прокси-сервера. Когда установлено значение , з'єднання успішно виконується незалежно від імен, зазначених у сертифікаті. Використовуйте цю здатність обережно! розглядається як опція налагодження в curl 7.28.0 та ранніх версіях. З версії curl 7.28.1 до 7.65.3 повернуто значення CURLE_BAD_FUNCTION_ARGUMENT. Починаючи з curl 7.66.0 і далі значення и обробляються як і те саме значення. У виробничому середовищі значення цієї опції має бути (значення за замовчуванням). | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_SSLVERSION| Одна из**CURL_SSLVERSION_DEFAULT** CURL_SSLVERSION_TLSv1 CURL_SSLVERSION_TLSv1_0 CURL_SSLVERSION_TLSv1_1 CURL_SSLVERSION_TLSv1_2 CURL_SSLVERSION_TLSv1_3 CURL_SSLVERSION_MAX_DEFAULT CURL_SSLVERSION_MAX_TLSv1_0 CURL_SSLVERSION_MAX_TLSv1_1 CURL_SSLVERSION_MAX_TLSv1_2 CURL_SSLVERSION_MAX_TLSv1_3 або CURL_SSLVERSION_SSLv3

Зауваження :

Найкраще не встановлювати це і дозволяти використовувати значення за промовчанням CURL_SSLVERSION_DEFAULT, яке намагатиметься з'ясувати версію протоколу віддаленого SSL.

| Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_STREAM_WEIGHT | Встановити вагу цифрового потоку (число між 1 та 256). | Додано до cURL 7.46.0. Доступно з PHP 7.0.7. | | CURLOPT_TCP_KEEPALIVE| Если установлено значение , будуть надіслані пробні повідомлення підтримки активності TCP. Затримку та частоту цих проб можна контролювати за допомогою параметрів CURLOPT_TCP_KEEPIDLE і CURLOPT_TCP_KEEPINTVL, если операционная система их поддерживает. Если установлено значение (за замовчуванням), пробні повідомлення перевірки активності вимкнені. | Додано до cURL 7.25.0. | | CURLOPT_TCP_KEEPIDLE | Встановлює затримку в секундах, протягом якої операційна система чекатиме, поки з'єднання перебуває в режимі очікування, перед відправкою проб перевірки активності, якщо увімкнено CURLOPT_TCP_KEEPALIVE. Не всі операційні системи підтримують цю опцію. За замовчуванням встановлено значення 60| Добавлено в cURL 7.25.0. | |CURLOPT_TCP_KEEPINTVL | Встановлює інтервал у секундах, протягом якого операційна система чекатиме між відправкою проб перевірки активності, якщо увімкнено CURLOPT_TCP_KEEPALIVE. Не всі операційні системи підтримують цю опцію. За замовчуванням встановлено значення 60| Добавлено в cURL 7.25.0. | |CURLOPT_TIMECONDITION| Способ трактовки параметра**CURLOPT_TIMEVALUEЗначениеCURL_TIMECOND_IFMODSINCE** вказують для повернення сторінки, тільки якщо вона була змінена з часу, вказаного у параметрі CURLOPT_TIMEVALUE. Якщо сторінку не було змінено, повернеться заголовок "304 Not Modified", подразумевая, что параметр**CURLOPT_HEADERустановлен вtrueЗначениеCURL_TIMECOND_IFUNMODSINCE** вказують на зворотний ефект. Значення CURL_TIMECOND_NONE - щоб ігнорувати опцію CURLOPT_TIMEVALUEи всегда возвращать страницу. По умолчанию установлено значениеCURL_TIMECOND_NONE. | До значення cURL 7.46.0 за промовчанням було CURL_TIMECOND_IFMODSINCE. CURLOPT_TIMEOUT | Максимально дозволена кількість секунд для виконання функцій cURL. | | | CURLOPT_TIMEOUT_MS | Максимально дозволена кількість мілісекунд для виконання cURL-функцій. Якщо бібліотека libcurl зібрана зі звичайним системним розпізнавальником імен, то цей проміжок з'єднання як і раніше буде використовувати повносекундну роздільну здатність інтервалів очікування з мінімально дозволеним часом очікування в одну секунду. | Доданий до версії cURL 7.16.2. | | CURLOPT_TIMEVALUE | Кількість секунд, починаючи з 1 січня 1970 року. Цей час буде використано параметром CURLOPT_TIMECONDITION. CURLOPT_TIMEVALUE_LARGE | Час за секунди з 1 січня 1970 року. Час буде використаний CURLOPT_TIMECONDITION. За замовчуванням нуль. Різниця між цією опцією та CURLOPT_TIMEVALUE полягає у типі аргументу. У системах, де 'long' має розмір лише 32 біти, цей параметр потрібно вказувати для встановлення дат після 2038 року. | Додано до cURL 7.59.0. Доступно з PHP 7.3.0. | | CURLOPT_UPKEEP_INTERVAL_MS | У деякі протоколи вбудовано механізми підтримки з'єднання. Ці механізми зазвичай надсилають невеликий обсяг трафіку через існуючі з'єднання, щоб тримати їх відкритими. Ця опція визначає інтервал, протягом якого підтримуватиметься з'єднання. Діючий та єдиний протокол з механізмом підтримки з'єднання – це HTTP/2. Коли інтервал підтримки з'єднання закінчується, протокол HTTP/2 надсилає кадр PING у з'єднання. Значення за замовчуванням - 60секунд. | | |CURLOPT_UPLOAD_BUFFERSIZE | Переважний розмір буфера завантаження cURL у байтах. Розмір буфера завантаження за замовчуванням - 64 кілобайти. Максимально можна встановити 2 мегабайти. Мінімально – 16 кілобайтів. | | | CURLOPT_MAX_RECV_SPEED_LARGE | Якщо швидкість стрибки перевищить це значення (зазначене в байтах на секунду) в середньому протягом усієї передачі, то стрибка буде призупинена для підтримки середньої швидкості менше або дорівнює цьому параметру. За замовчуванням швидкість не обмежується. | Доданий до версії cURL 7.15.5. | | CURLOPT_MAX_SEND_SPEED_LARGE | Якщо завантаження на сервер перевищить це значення (зазначене в байтах на секунду) в середньому протягом усієї передачі, то завантаження буде призупинено для підтримки середньої швидкості менше або дорівнює цьому параметру. За замовчуванням швидкість не обмежується. | Доданий до версії cURL 7.15.5. | | 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 | Повідомити дескриптор cURL, який метод доступу до файлу на сервері FTP використовувати. Можливі значення: CURLFTPMETHOD_DEFAULT CURLFTPMETHOD_MULTICWD CURLFTPMETHOD_NOCWD і CURLFTPMETHOD_SINGLECWD| Добавлено в cURL 7.15.1. |

Для следующих значений параметраoption, параметрvalue повинен бути типу string:

ПараметрУстанавливаемое значение valueЗамечания
CURLOPT_ABSTRACT_UNIX_SOCKETДозволяє використовувати абстрактний доменний сокет Unix замість встановлення TCP-з'єднання з хостом та встановлює шлях до зазначеного рядка (string). Ця опція використовує ту саму семантику, що й CURLOPT_UNIX_SOCKET_PATH. . Ці два параметри спільно використовують те саме сховище, тому для кожного дескриптора можна встановити тільки один з них.Доступно з PHP 7.3.0 та cURL 7.53.0
CURLOPT_ALTSVCПередати дескриптору cURL ім'я файлу, який буде працювати як файл Alt-Svc-кеш для читання існуючих кешованих даних і, можливо, також запис їх назад після передачі, за винятком випадків, коли для опції CURLOPT_ALTSVC_CTRLустановлено значениеCURLALTSVC_READONLYFILE
CURLOPT_ALTSVC_CTRLЗаповніть бітову маску правильними значеннями, щоб проінструктувати дескриптор cURL, як обробляти кеш Alt-Svc під час передачі. Дескриптор cURL приймає заголовки Alt-Svc лише за допомогою HTTPS. Запит до альтернативного джерела виконається лише якщо джерело правильно налаштоване на обмін даними за протоколом HTTPS. Установка будь-якого біта включить двигун alt-svc. Доступні такі опції: CURLALTSVC_H1CURLALTSVC_H2CURLALTSVC_H3 і CURLALTSVC_READONLYFILE
CURLOPT_AWS_SIGV4
Забезпечує аутентифікацію підпису в заголовку HTTP(S) за протоколом AWS V4.

Ця опція перевизначить будь-які інші типи аутентифікації, встановлені опцією CURLOPT_HTTPAUTH. Цей метод не можна комбінувати з іншими типами автентифікації.

CURLOPT_CAINFO | Ім'я файлу, який містить один або більше сертифікатів, з якими звірятимуться вузли. Цей параметр буде корисним лише при спільній роботі з CURLOPT_SSL_VERIFYPEER. | Може знадобитися абсолютний шлях. | | CURLOPT_CAINFO_BLOB | Назва PEM-файлу, який містить один або кілька сертифікатів для перевірки вузла. Ця опція перевизначає опцію CURLOPT_CAINFO. | Доступна з PHP 8.2.0 і cURL 7.77.0. | | CURLOPT_CAPATH | Директорія містить кілька CA-сертифікатів. Використовуйте цей параметр разом із CURLOPT_SSL_VERIFYPEER. CURLOPT_COOKIE | Вміст заголовка "Cookie: ", який буде передано в HTTP-запит. Зверніть увагу, що кілька cookies розділяються крапкою з комою з наступним пробілом (наприклад, "fruit=apple; colour=red") | | | CURLOPT_COOKIEFILE | Ім'я файлу, що містить cookies. Цей файл має бути у форматі Netscape або просто заголовками HTTP, записаними у файл. Якщо в якості імені файлу передано порожній рядок, то cookies зберігатися не будуть, але їхня обробка все ще буде включена. | | | CURLOPT_COOKIEJAR | Ім'я файлу, в якому будуть збережені всі внутрішні cookie поточної передачі після закриття дескриптора, наприклад, після виклику curl_close. | | |CURLOPT_COOKIELIST | Рядок cookie (тобто один рядок у форматі Netscape/Mozilla або звичайний заголовок Set-Cookie у стилі HTTP) додає цей єдиний cookie у внутрішнє сховище cookie . "ALL" видаляє всі файли cookie, що зберігаються у пам'яті . "SESS" видаляє всі файли cookie сесії, що зберігаються у пам'яті . "FLUSH" записує всі відомі файли cookie у файл, вказаний у CURLOPT_COOKIEJAR. . "RELOAD" завантажує всі файли cookie з файлів, зазначених у CURLOPT_COOKIEFILE| Доступно с cURL 7.14.1. | |CURLOPT_CUSTOMREQUEST

Користувальницький метод запиту, який буде використаний замість "GET"или"HEAD" під час виконання HTTP-запиту. Це корисно при запитах "DELETE" або інших, більш рідкісних HTTP-запитах. Коректними значеннями будуть: "GET" "POST" "CONNECT" і так далі; тобто тут не потрібно вводити весь рядок із HTTP-запитом. Наприклад, вказівка "GET /index.md 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_HSTS

Ім'я файлу кеша HSTS (HTTP Strict Transport Security).

CURLOPT_HSTS_CTRL

Керує поведінкою механізму HSTS (HTTP Strict Transport Security). Заповніть бітову маску правильним набором значень, щоб проінструктувати дескриптор cURL, як обробляти хости HSTS під час передачі з цим дескриптором. Константа CURLHSTS_ENABLE включає кеш HSTS, що запам'ятовується (in-memory). Якщо файл кешу HSTS визначено, установіть значення CURLHSTS_READONLYFILE зробить файл доступним лише читання.

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-запиті. Цей параметр може бути переданий як URL-кодований рядок, на кшталт «para1=val1&para2=val2&...», і у вигляді масиву, ключами якого будуть імена полів, а значеннями — їх вміст. Якщо параметр value— массив, заголовокContent-Typeбудет установлен в значениеmultipart/form-data. Файли можна надіслати у вигляді переданого у параметр value масиву, що містить об'єкти класу CURLFile або CURLStringFile. CURLOPT_PRIVATE | Будь-які дані, які мають бути пов'язані з цим дескриптором cURL. Ці дані можна вибрати під запитом опції CURLINFO_PRIVATE функції curl_getinfo(). Дескриптор cURL нічого не робить із цими даними. Працюючи з множинним дескриптором cURL ці закриті дані зазвичай виступають ролі унікального ключа визначення дескриптора cURL. | Додано до cURL 7.10.3. | | CURLOPT_PRE_PROXY | Задайте рядок (string), що містить ім'я хоста або IP-адресу, яка буде використана як проксі-сервер, до якого підключається curl, перш ніж він підключиться до проксі-сервера HTTP(S), вказаному в опції CURLOPT_PROXY для подальшого запиту. Попередній проксі-сервер може бути лише SOCKS-проксі, і перед ним має стояти префікс [scheme]://, щоб вказати, який тип socks використовувати. Числова адреса IPv6 має бути написана в [дужках]. Встановлення препроксі в порожній рядок явно відключає використання препроксі. Щоб вказати номер порту в цьому рядку, додайте :[port] на кінець імені хоста. Номер порту проксі-сервера може бути додатково вказаний у опції CURLOPT_PROXYPORT. . Якщо порт для проксі не вказано, за замовчуванням буде встановлено порт 1080. | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY | HTTP-проксі, через який надсилаються запити. | | | CURLOPT_PROXY_SERVICE_NAME | Ім'я сервісу аутентифікації проксі. | Додано до cURL 7.43.0 для HTTP-проксі та cURL 7.49.0 для SOCKS5-проксі. Доступно з PHP 7.0.7. | | CURLOPT_PROXY_CAINFO | Шлях до проксі-сервера центру сертифікації. Задайте шлях у вигляді рядка (string) з ім'ям файлу, який містить один або кілька сертифікатів для перевірки проксі за допомогою HTTPS. Цей параметр призначений для підключення до проксі-сервера HTTPS, а не до сервера HTTPS. За замовчуванням встановлено системний шлях, де передбачається зберігати пакет cacert libcurl. | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_CAINFO_BLOB | Ім'я файлу PEM, який містить один або кілька сертифікатів для перевірки HTTPS-проксі. Ця опція стосується підключення до HTTPS-проксі, а не до сервера HTTPS. За замовчуванням встановлено системний шлях, яким передбачається зберігати набір сертифікатів центрів модуля libcurl, що засвідчують. | Доступно з PHP 8.2.0 і libcurl >= cURL 7.77.0. | | CURLOPT_PROXY_CAPATH | Каталог містить кілька сертифікатів центру сертифікації для перевірки проксі HTTPS. | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_CRLFILE | Задайте ім'я файлу за допомогою конкатенації CRL (список відкликань сертифікатів) у форматі PEM для використання під час перевірки сертифіката, яка відбувається під час обміну SSL. | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_KEYPASSWD | Рядок, який буде використаний як пароль для закритого ключа опції CURLOPT_PROXY_SSLKEY. . Пароль для завантаження сертифіката не потрібен, але пароль для завантаження закритого ключа. Цей параметр потрібний для підключення до проксі-сервера HTTPS, а не до HTTPS-сервера. | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_PINNEDPUBLICKEY | Встановіть закріплений відкритий ключ для проксі HTTPS. Рядок може бути іменем файлу вашого закріпленого відкритого ключа. Очікуваний формат файлу: "PEM" або "DER". Рядок також може бути будь-якою кількістю закодованих в base64 хешей sha256, яким передує "sha256//" і поділяються ";" | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_SSLCERT | Ім'я файлу сертифіката клієнта для підключення до проксі HTTPS. Формат за замовчуванням - "P12" в Secure Transport і "PEM" в інших двигунах; його можна змінити за допомогою CURLOPT_PROXY_SSLCERTTYPE. . З NSS або Secure Transport це також може бути псевдонім сертифіката, з яким треба пройти автентифікацію, оскільки він названий у базі безпеки. Якщо потрібно використовувати файл із поточного каталогу, до нього додають префікс "./", щоб уникнути плутанини із псевдонімом. | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_SSLCERTTYPE | Формат сертифіката клієнта, який буде використаний при підключенні до HTTPS-проксі. Підтримувані формати: "PEM" та "DER", за винятком Secure Transport. OpenSSL (версії 0.9.3 і новіші) та Secure Transport (в iOS 5 або новіші або OS X 10.7 або новіші) також підтримують "P12" для файлів у кодуванні PKCS#12. За замовчуванням "PEM". | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_SSL_CIPHER_LIST | Список шифрів, які будуть використані для підключення до проксі HTTPS. Список має бути синтаксично правильним, він складається з одного або декількох рядків шифрів, розділених двокрапками. Коми або прогалини також є допустимими роздільниками, але зазвичай як оператори використовуються двокрапки, !, - і +. | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_TLS13_CIPHERS | Список наборів шифрів, які будуть використані для підключення TLS 1.3 до проксі. Список має бути синтаксично правильним, він складається з одного або декількох рядків набору шифрів, розділених двокрапками. Цю опцію використовують лише тоді, коли curl зібраний для роботи з OpenSSL 1.1.1 чи новіше. Якщо вибрано інший бекенд SSL, можна спробувати встановити набори шифрів TLS 1.3 через параметр CURLOPT_PROXY_SSL_CIPHER_LIST. . | Доступно з PHP 7.3.0 та libcurl >= cURL 7.61.0. Доступно під час збирання з OpenSSL >= 1.1.1. | | CURLOPT_PROXY_SSLKEY | Ім'я особистого ключа, який буде використано для підключення до проксі HTTPS. Формат за замовчуванням - "PEM", і його можна змінити через опцію CURLOPT_PROXY_SSLKEYTYPE. . (Тільки для iOS та Mac OS X). Цей параметр ігнорується, якщо curl було створено Secure Transport. | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. Доступно, якщо увімкнено вбудований TLS. | | CURLOPT_PROXY_SSLKEYTYPE | Формат закритого ключа. Підтримувані формати: "PEM", "DER" та "ENG". | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_TLSAUTH_PASSWORD | Пароль для методу автентифікації TLS, який встановлено у параметрі CURLOPT_PROXY_TLSAUTH_TYPE. Потрібно також встановити параметр CURLOPT_PROXY_TLSAUTH_USERNAME. . | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_TLSAUTH_TYPE | Метод аутентифікації TLS для з'єднання HTTPS. Підтримуваний метод - "SRP".

Зауваження :

Аутентифікація Secure Remote Password (SRP) для TLS забезпечує взаємну автентифікацію, якщо обидві сторони мають спільний секрет. Щоб використовувати TLS-SRP, ви також маєте встановити параметри CURLOPT_PROXY_TLSAUTH_USERNAME і CURLOPT_PROXY_TLSAUTH_PASSWORD

| Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXY_TLSAUTH_USERNAME | Ім'я користувача, яке буде використано для методу аутентифікації TLS проксі-сервера HTTPS, вказаного у параметрі CURLOPT_PROXY_TLSAUTH_TYPE. Потрібно, щоб параметр CURLOPT_PROXY_TLSAUTH_PASSWORD також було встановлено. | Доступно з PHP 7.3.0 та libcurl >= cURL 7.52.0. | | CURLOPT_PROXYUSERPWD | Логін та пароль, записані у вигляді "[username]:[password]", які будуть використані під час з'єднання через проксі. | | | CURLOPT_RANDOM_FILE | Назва файлу для ініціалізації генератора випадкових чисел для SSL. | | | CURLOPT_RANGE | Діапазон даних, які потрібно завантажити у форматі "X-Y", причому чи X, чи Y може бути опущені. Протокол HTTP також підтримує передачу кількох діапазонів, розділених комами, вони задаються у форматі "X-Y,N-M". CURLOPT_REFERER | Вміст заголовка "Referer: ", який буде використаний у HTTP-запиті. | | | CURLOPT_SASL_AUTHZID | Ідентифікатор авторизації (authzid) передачі. Цю опцію можна використовувати лише для механізму автентифікації PLAIN SASL, де це необов'язково. Якщо ідентифікатор авторизації не заданий, лише ідентифікатор автентифікації (authcid), як визначено в імені користувача, буде надіслано на сервер (разом із паролем). Сервер отримає ідентифікатор авторизації (authzid) з ідентифікатора автентифікації (authcid), якщо ідентифікатор авторизації не було вказано, і потім використовуватиме внутрішньо. | | | 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_HOST_PUBLIC_KEY_SHA256 | Закодований у Base64 за алгоритмом SHA256 хеш публічного ключа віддаленого хоста. Передача завершиться помилкою, якщо заданий хеш відповідає хешу віддаленого хоста. | | | 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_SSL_EC_CURVES | Розділений двокрапкою список заснованих на еліптичних кривих алгоритмах. Наприклад, X25519:P-521 — це допустимий список із двох еліптичних кривих. Ця опція визначатиме клієнтські алгоритми обміну під час SSL-рукостискання, якщо дескриптор cURL на SSL-бекенді зібраний з підтримкою цієї опції. | | | CURLOPT_SSLCERT | Назва файлу з коректно відформатованим PEM-сертифікатом. | | | CURLOPT_SSLCERTPASSWD| Пароль для сертификата опции**CURLOPT_SSLCERT**. CURLOPT_SSLCERTTYPE | Формат сертифікату. Підтримуються формати "PEM"(по умолчанию),"DER"и"ENG". Починаючи з OpenSSL 0.9.3, "P12" (для файлів, закодованих у PKCS # 12) | Доданий до версії cURL 7.9.3. | | CURLOPT_SSLENGINE | Ідентифікатор механізму шифрування для закритого ключа SSL, вказаного у параметрі CURLOPT_SSLKEY. CURLOPT_SSLENGINE_DEFAULT | Ідентифікатор шифрування для асиметричних операцій шифрування. | | | CURLOPT_SSLKEY | Ім'я файлу із закритим ключем SSL. | | | CURLOPT_SSLKEYPASSWD

Таємний пароль для закритого ключа SSL, вказаного параметром CURLOPT_SSLKEY

Зауваження :

Так як цей параметр містить цінний пароль, пам'ятайте, що PHP-скрипт, що його містить, потрібно зберігати в безпечному місці.

CURLOPT_SSLKEYTYPE | Тип закритого ключа SSL, вказаного у параметрі CURLOPT_SSLKEY. Підтримуються такі типи ключів: "PEM"(по умолчанию),"DER"и"ENG". CURLOPT_TLS13_CIPHERS | Список комплектів шифрів для TLS 1.3. Список має бути синтаксично правильним, він складається з одного або декількох рядків набору шифрів, розділених двокрапками. Цю опцію використовують лише тоді, коли curl зібраний для роботи OpenSSL 1.1.1 чи новіше. Якщо вибрано інший бекенд SSL, можна спробувати встановити набори шифрів TLS 1.3 через параметр CURLOPT_SSL_CIPHER_LIST. . | Доступний з PHP 7.3.0 та libcurl >= cURL 7.61.0. Доступний, коли зібраний із бібліотекою OpenSSL >= 1.1.1. | | 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. | | CURLOPT_PASSWORD | Пароль для автентифікації. | Додано до cURL 7.19.1. | | 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Додано до cURL 7.49.0. Доступно з 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-запиту.
CURLOPT_RESOLVEНадає адресу для певної пари хоста та порту. Масив, що містить рядки, що складаються з імені хоста, порту та IP-адреси, розділених двокрапкою. Приклад: array("example.com:80:127.0.0.1")Додано до cURL 7.21.3.

Для следующих значений параметраoptionпараметрvalue повинен бути потоковим дескриптором (повертається, наприклад, функцією fopen()):

ПараметрУстанавливаемое значение value
CURLOPT_FILEФайл, до якого буде записано результат передачі. За промовчанням запис йде в потік виводу STDOUT (Вікно браузера).
CURLOPT_INFILEФайл, з якого потрібно читати дані, під час завантаження на сервер.
CURLOPT_STDERRАльтернативний файл для виведення помилок, який буде використаний замість потоку помилок STDERR
CURLOPT_WRITEHEADERФайл, до якого буде записано заголовки поточної операції.

Для следующих значений параметраoption, параметрvalue має бути правильним ім'ям функції або замиканням:

ПараметрУстанавливаемое значение valueПримечания
CURLOPT_HEADERFUNCTIONCallback-функція приймає два параметри. Першим параметром є дескриптор cURL, другим параметром є рядок із заголовками, що записуються. Заголовки повинні бути записані за допомогою цієї callback-функції. Повинна повернути кількість записаних байт.
CURLOPT_PASSWDFUNCTIONCallback-функція приймає три параметри. Першим параметром йде дескриптор cURL, другим параметром – рядок із запитом пароля, третім – максимальна довжина пароля. Повинна повернути рядок, який містить пароль.Видалено, починаючи з PHP 7.3.0.
CURLOPT_PROGRESSFUNCTION
Callback-функція приймає п'ять параметрів. Перший є дескриптором cURL, другий – загальною кількістю байт, яку очікується завантажити з сервера, третій – кількістю вже завантажених байтів, четвертий – загальною кількістю байтів, для яких очікується відправка на сервер, та п'ятий – кількістю вже надісланих байтів.

Зауваження :

Callback-функція викликається тільки якщо опція CURLOPT_NOPROGRESSустановлена в значениеfalse

Щоб скасувати передачу, можна повернути ненульове значення. У цьому випадку буде видано помилку CURLE_ABORTED_BY_CALLBACK

CURLOPT_READFUNCTION | Callback-функція приймає три параметри. Першим параметром є дескриптор cURL, другим параметром ресурс потоку, переданий cURL через опцію CURLOPT_INFILE, а третім – максимально дозволена кількість даних для читання. Callback-функція повинна повернути рядок з довжиною, яка не перевищує запитаної кількості даних, зазвичай за допомогою читання з переданого потокового ресурсу. Повинна повернути порожній рядок для сигналу про кінець файлу EOF. CURLOPT_WRITEFUNCTION | Callback-функція приймає два параметри. Першим параметром є дескриптор cURL, а другим — рядок із даними, що записуються. Дані мають бути збережені за допомогою цієї функції. Вона повинна повернути точну кількість записаних байт, інакше закачування буде перервано з помилкою. | | CURLOPT_XFERINFOFUNCTION| Callback-функция, принимающая два параметра. Имеет схожее назначение с опцией**CURLOPT_PROGRESSFUNCTION**, але є більш сучасним та кращим варіантом від cURL. | Додана у версії 7.32.0. Доступна, починаючи з PHP 8.2.0. | |

Інші значення:

ПараметрУстанавливаемое значение value
CURLOPT_SHAREРезультат виконання функції curl_share_init(). . Дозволяє обробнику cURL використовувати дані із загального оброблювача.

Значення, що повертаються

Повертає true у разі успішного виконання або **false**в случае возникновения ошибки.

список змін

ВерсияОпис
8.0.0handle тепер чекає екземпляр CurlHandle; раніше, очікувався ресурс (resource).
7.3.15, 7.4.3Добавлен параметр**CURLOPT_HTTP09_ALLOWED**
7.3.0Додані параметри CURLOPT_ABSTRACT_UNIX_SOCKETCURLOPT_KEEP_SENDING_ON_ERRORCURLOPT_PRE_PROXYCURLOPT_PROXY_CAINFOCURLOPT_PROXY_CAPATHCURLOPT_PROXY_CRLFILECURLOPT_PROXY_KEYPASSWDCURLOPT_PROXY_PINNEDPUBLICKEYCURLOPT_PROXY_SSLCERTCURLOPT_PROXY_SSLCERTTYPECURLOPT_PROXY_SSL_CIPHER_LISTCURLOPT_PROXY_SSLKEYCURLOPT_PROXY_SSLKEYTYPECURLOPT_PROXY_SSL_OPTIONSCURLOPT_PROXY_SSL_VERIFYHOSTCURLOPT_PROXY_SSL_VERIFYPEERCURLOPT_PROXY_SSLVERSIONCURLOPT_PROXY_TLSAUTH_PASSWORDCURLOPT_PROXY_TLSAUTH_TYPECURLOPT_PROXY_TLSAUTH_USERNAMECURLOPT_SOCKS5_AUTHCURLOPT_SUPPRESS_CONNECT_HEADERSCURLOPT_DISALLOW_USERNAME_IN_URLCURLOPT_DNS_SHUFFLE_ADDRESSESCURLOPT_HAPPY_EYEBALLS_TIMEOUT_MSCURLOPT_HAPROXYPROTOCOLCURLOPT_PROXY_TLS13_CIPHERSCURLOPT_SSH_COMPRESSIONCURLOPT_TIMEVALUE_LARGE і CURLOPT_TLS13_CIPHERS
7.0.7Додані параметри та їх значення CURL_HTTP_VERSION_2CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGECURL_HTTP_VERSION_2TLSCURL_REDIR_POST_301CURL_REDIR_POST_302CURL_REDIR_POST_303CURL_REDIR_POST_ALLCURL_VERSION_KERBEROS5CURL_VERSION_PSLCURL_VERSION_UNIX_SOCKETSCURLAUTH_NEGOTIATECURLAUTH_NTLM_WBCURLFTP_CREATE_DIRCURLFTP_CREATE_DIR_NONECURLFTP_CREATE_DIR_RETRYCURLHEADER_SEPARATECURLHEADER_UNIFIEDCURLMOPT_CHUNK_LENGTH_PENALTY_SIZECURLMOPT_CONTENT_LENGTH_PENALTY_SIZECURLMOPT_MAX_HOST_CONNECTIONSCURLMOPT_MAX_PIPELINE_LENGTHCURLMOPT_MAX_TOTAL_CONNECTIONSCURLOPT_CONNECT_TOCURLOPT_DEFAULT_PROTOCOLCURLOPT_DNS_INTERFACECURLOPT_DNS_LOCAL_IP4CURLOPT_DNS_LOCAL_IP6CURLOPT_EXPECT_100_TIMEOUT_MSCURLOPT_HEADEROPTCURLOPT_LOGIN_OPTIONSCURLOPT_PATH_AS_ISCURLOPT_PINNEDPUBLICKEYCURLOPT_PIPEWAITCURLOPT_PROXY_SERVICE_NAMECURLOPT_PROXYHEADERCURLOPT_SASL_IRCURLOPT_SERVICE_NAMECURLOPT_SSL_ENABLE_ALPNCURLOPT_SSL_ENABLE_NPNCURLOPT_SSL_FALSESTARTCURLOPT_SSL_VERIFYSTATUSCURLOPT_STREAM_WEIGHTCURLOPT_TCP_FASTOPENCURLOPT_TFTP_NO_OPTIONSCURLOPT_UNIX_SOCKET_PATHCURLOPT_XOAUTH2_BEARERCURLPROTO_SMBCURLPROTO_SMBSCURLPROXY_HTTP_1_0CURLSSH_AUTH_AGENT і CURLSSLOPT_NO_REVOKE

Приклади

Приклад #1 Ініціалізація сеансу CURL та завантаження веб-сторінки

Loading...

Примітки

Зауваження :

Передача массива в параметр**CURLOPT_POSTFIELDS** закодує дані з типом multipart/form-data, тоді як передача URL-кодованого рядка закодує дані з типом application/x-www-form-urlencoded

Дивіться також