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_AUTOREFERER | true для автоматичного встановлення поля Referer: у запитах, перенаправлених заголовком Location: | |
CURLOPT_COOKIESESSION | true для вказівки поточного сеансу розпочати нову сесію cookies. Це змусить модуль libcurl проігнорувати всі сесійні cookies з попереднього сеансу, які він збирається завантажити. За замовчуванням модуль libcurl завжди зберігає та завантажує всі cookies, незалежно від того, чи є вони сесійними чи ні. "Сесійні" cookies - це cookies без терміну закінчення, які повинні існувати тільки для поточної сесії. | |
CURLOPT_CERTINFO | true для виведення інформації про сертифікат SSL у потік STDERR при безпечних з'єднаннях. | Додано до cURL 7.19.1. Для коректної роботи вимагає увімкненої опції CURLOPT_VERBOSE |
CURLOPT_CONNECT_ONLY | true повідомляє бібліотеці, щоб вона провела необхідні аутентифікацію проксі та налаштування з'єднання, але не передавала дані. Ця опція реалізована для HTTP, SMTP та POP3. | Додано до 7.15.2. |
CURLOPT_CRLF | true для перетворення кінців рядків Unix на CRLF. | |
CURLOPT_DISALLOW_USERNAME_IN_URL | true для заборони URL-адрес, що містять ім'я користувача. Стандартні імена користувачів дозволені (0). | Додано до cURL 7.61.0. Доступно з PHP 7.3.0. |
CURLOPT_DNS_SHUFFLE_ADDRESSES | true для перемішування порядку всіх повернутих адрес так, щоб вони вибиралися у випадковому порядку, коли ім'я дозволено і повернено більше однієї IP-адреси. Тому IPv4 можна вибрати до IPv6 або навпаки. | Додано до cURL 7.60.0. Доступно з PHP 7.3.0. |
CURLOPT_HAPROXYPROTOCOL | true для надсилання заголовка протоколу HAProxy PROXY v1 на початку з'єднання. За промовчанням — не надсилати заголовок. | Додано до cURL 7.60.0. Доступно з PHP 7.3.0. |
CURLOPT_SSH_COMPRESSION | true для увімкнення вбудованого стиснення SSH. Це запит, а вказівка; сервер може і не виконати. | Додано до cURL 7.56.0. Доступно з PHP 7.3.0. |
CURLOPT_DNS_USE_GLOBAL_CACHE | true для дозволу назв через глобальний кеш DNS. Цей параметр не є безпечним. Він умовно включений за замовчуванням, якщо PHP зібраний для потоконебезпечної роботи (CLI, FCGI, Apache2-Prefork тощо). | |
CURLOPT_FAILONERROR | true для докладного звіту при невдачі, якщо отриманий HTTP-код більший або дорівнює 400. Стандартна поведінка повертає сторінку як звичайно, ігноруючи код. | |
CURLOPT_SSL_FALSESTART | true для дозволу хибного старту TLS. | Додано cURL 7.42.0. Доступно з PHP 7.0.7. |
CURLOPT_FILETIME | true для отримання дати модифікації видаленого документа. Дату одержують, викликаючи функцію curl_getinfo() з опцією CURLINFO_FILETIME | |
CURLOPT_FOLLOWLOCATION | true для дотримання будь-якого заголовка «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 для відключення алгоритму Нейгла, який намагається зменшити кількість дрібних пакетів у мережі. | Доступна для версій, зібраних з libcurl 7.11.2 або новіше. |
CURLOPT_FTPASCII | Псевдоним**CURLOPT_TRANSFERTEXT **. . Використовуйте його натомість. | |
CURLOPT_FTPLISTONLY | true для повернення тільки списку імен із FTP-директорії. | |
CURLOPT_HEADER | true для включення заголовків у висновок. | |
CURLINFO_HEADER_OUT | true для відстеження рядка запиту дескриптора. | Префікс 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_HTTPGET | true скидання методу HTTP-запиту на метод GET. Оскільки метод GET встановлено за замовчуванням, цей параметр необхідний лише у випадку, якщо метод запиту було змінено раніше. | |
CURLOPT_HTTPPROXYTUNNEL | true для тунелювання через вказаний HTTP-проксі. | |
CURLOPT_HTTP_CONTENT_DECODING | false для отримання необробленого тіла HTTP-відповіді. | Доступно, якщо зібрано з libcurl >= 7.16.2. |
CURLOPT_KEEP_SENDING_ON_ERROR | true для продовження посилати тіло запиту, якщо HTTP-код, що повертається, дорівнює або більше 300. Дія за замовчуванням — зупинити відправку і закрити потік або з'єднання. Підходить для ручної автентифікації NTLM. Більшості програм ця опція не потрібна. | Доступно з PHP 7.3.0, якщо зібрано з libcurl >= 7.51.0. |
CURLOPT_MUTE | true для повного вимкнення повідомлень функцій cURL. | Видалено в cURL 7.15.5 (Можна використовувати опцію CURLOPT_RETURNTRANSFER) |
CURLOPT_NETRC | true для зчитування файлу ~/.netrc, щоб знайти логін та пароль для віддаленого сайту, з яким встановлюється з'єднання. | |
CURLOPT_NOBODY | true для виключення тіла відповіді з виводу. Метод запиту встановлюється у 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_VERSION | CURL_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_0 CURL_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_BASIC CURLAUTH_DIGEST CURLAUTH_GSSNEGOTIATE CURLAUTH_NTLM CURLAUTH_AWS_SIGV4 CURLAUTH_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_H1 CURLALTSVC_H2 CURLALTSVC_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¶2=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_HEADERFUNCTION | Callback-функція приймає два параметри. Першим параметром є дескриптор cURL, другим параметром є рядок із заголовками, що записуються. Заголовки повинні бути записані за допомогою цієї callback-функції. Повинна повернути кількість записаних байт. | |
CURLOPT_PASSWDFUNCTION | Callback-функція приймає три параметри. Першим параметром йде дескриптор 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.0 | handle тепер чекає екземпляр CurlHandle; раніше, очікувався ресурс (resource). |
7.3.15, 7.4.3 | Добавлен параметр**CURLOPT_HTTP09_ALLOWED ** |
7.3.0 | Додані параметри CURLOPT_ABSTRACT_UNIX_SOCKET CURLOPT_KEEP_SENDING_ON_ERROR CURLOPT_PRE_PROXY CURLOPT_PROXY_CAINFO CURLOPT_PROXY_CAPATH CURLOPT_PROXY_CRLFILE CURLOPT_PROXY_KEYPASSWD CURLOPT_PROXY_PINNEDPUBLICKEY CURLOPT_PROXY_SSLCERT CURLOPT_PROXY_SSLCERTTYPE CURLOPT_PROXY_SSL_CIPHER_LIST CURLOPT_PROXY_SSLKEY CURLOPT_PROXY_SSLKEYTYPE CURLOPT_PROXY_SSL_OPTIONS CURLOPT_PROXY_SSL_VERIFYHOST CURLOPT_PROXY_SSL_VERIFYPEER CURLOPT_PROXY_SSLVERSION CURLOPT_PROXY_TLSAUTH_PASSWORD CURLOPT_PROXY_TLSAUTH_TYPE CURLOPT_PROXY_TLSAUTH_USERNAME CURLOPT_SOCKS5_AUTH CURLOPT_SUPPRESS_CONNECT_HEADERS CURLOPT_DISALLOW_USERNAME_IN_URL CURLOPT_DNS_SHUFFLE_ADDRESSES CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS CURLOPT_HAPROXYPROTOCOL CURLOPT_PROXY_TLS13_CIPHERS CURLOPT_SSH_COMPRESSION CURLOPT_TIMEVALUE_LARGE і CURLOPT_TLS13_CIPHERS |
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 |
Приклади
Приклад #1 Ініціалізація сеансу CURL та завантаження веб-сторінки
Loading...
Примітки
Зауваження :
Передача массива в параметр**
CURLOPT_POSTFIELDS
** закодує дані з типом multipart/form-data, тоді як передача URL-кодованого рядка закодує дані з типом application/x-www-form-urlencoded
Дивіться також
- curl_setopt_array() - Встановлює кілька параметрів для сеансу cURL
- CURLFile
- CURLStringFile