curl_setopt - Устанавливает параметр для сеанса CURL
Вернуться к: cURL
curl_setopt
(PHP 4 >= 4.0.2, PHP 5, PHP 7)
curl_setopt — Устанавливает параметр для сеанса CURL
Описание
Устанавливает параметр для указанного сеанса cURL.
Список параметров
-
ch
-
Дескриптор cURL, полученный из curl_init().
-
option
-
Устанавливаемый параметр CURLOPT_XXX.
-
value
-
Значение параметра
option
.Для следующих значений параметра
option
, параметрvalue
должен быть типа bool:Параметр Устанавливаемое значение value
Замечания CURLOPT_AUTOREFERER
TRUE
для автоматической установки поля Referer: в запросах, перенаправленных заголовком Location:.CURLOPT_BINARYTRANSFER
TRUE
для возврата необработанного ответа при использовании константыCURLOPT_RETURNTRANSFER
.С PHP 5.1.3 эта опция больше не требуется: необработанный вывод всегда возвращается при использовании опции CURLOPT_RETURNTRANSFER
.CURLOPT_COOKIESESSION
TRUE
для указания текущему сеансу начать новую "сессию" cookies. Это заставит libcurl проигнорировать все "сессионные" cookies, которые она должна была бы загрузить, полученные из предыдущей сессии. По умолчанию, libcurl всегда сохраняет и загружает все cookies, вне зависимости от того, являются ли они "сессионными" или нет. "Сессионные" cookies - это cookies без срока истечения, которые должны существовать только для текущей "сессии".CURLOPT_CERTINFO
TRUE
для вывода информации о сертификате SSL в поток STDERR при безопасных соединениях.Добавлена в cURL 7.19.1. Доступна, начиная с версии PHP 5.3.2. Для корректной работы требует включенной опции CURLOPT_VERBOSE
.CURLOPT_CONNECT_ONLY
TRUE
сообщает библиотеке, чтобы она провела необходимые аутентификацию прокси и настройку соединения, но не передавала данные. Эта опция реализована для HTTP, SMTP и POP3.Добавлена в 7.15.2. Доступна с версии PHP 5.5.0. CURLOPT_CRLF
TRUE
для преобразования концов строк Unix в CRLF.CURLOPT_DNS_USE_GLOBAL_CACHE
TRUE
для использования глобального кэша DNS. Этот параметр не является потокобезопасным и по умолчанию включен.CURLOPT_FAILONERROR
TRUE
для подробного отчета при неудаче, если полученный HTTP-код больше или равен 400. Поведение по умолчанию возвращает страницу как обычно, игнорируя код.CURLOPT_FILETIME
TRUE
для попытки получения даты модификации удаленного документа. Это значение может быть получено с помощью параметраCURLINFO_FILETIME
из функции curl_getinfo().CURLOPT_FOLLOWLOCATION
TRUE
для следования любому заголовку "Location: ", отправленному сервером в своем ответе (учтите, что это происходит рекурсивно, PHP будет следовать за всеми посылаемыми заголовками "Location: ", за исключением случая, когда установлена константаCURLOPT_MAXREDIRS
).CURLOPT_FORBID_REUSE
TRUE
для принудительного закрытия соединения после завершения его обработки так, чтобы его нельзя было использовать повторно.CURLOPT_FRESH_CONNECT
TRUE
для принудительного использования нового соединения вместо закэшированного.CURLOPT_FTP_USE_EPRT
TRUE
для использования EPRT (и LPRT) при активных FTP загрузках. ИспользуйтеFALSE
для того, чтобы отключить EPRT и LPRT и использовать только PORT.CURLOPT_FTP_USE_EPSV
TRUE
для первоначальной пробы команды EPSV при FTP передачах. Если команда не удалась, будет произведен обратный откат к PASV. Установите вFALSE
для отключения EPSV.CURLOPT_FTP_CREATE_MISSING_DIRS
TRUE
для создания отсутствующих директорий, если FTP-операция обнаруживает несуществующий путь.CURLOPT_FTPAPPEND
TRUE
для записи удаленного файла в конец, вместо перезаписывания его поверх существующего файла.CURLOPT_TCP_NODELAY
Задает на постоянной основе должна ли опция TCP_NODELAY установлена или очищена (1 = установлена, 0 = очищена). По умолчанию опция очищается. Доступна с версии PHP 5.2.1 для версий собранных с libcurl 7.11.2 или новее. CURLOPT_FTPASCII
Псевдоним CURLOPT_TRANSFERTEXT
. Используйте его вместо этого.CURLOPT_FTPLISTONLY
TRUE
для возврата только списка имен из FTP директории.CURLOPT_HEADER
TRUE
для включения заголовков в вывод.CURLINFO_HEADER_OUT
TRUE
для отслеживания строки запроса дескриптора.Доступен, начиная с версии PHP 5.1.3. Префикс CURLINFO_
употреблен специально.CURLOPT_HTTPGET
TRUE
для сброса метода HTTP-запроса в метод GET. Так как GET используется по умолчанию, этот параметр необходим только в случае, если метод запроса был ранее изменен.CURLOPT_HTTPPROXYTUNNEL
TRUE
для туннелирования через указанный HTTP-прокси.CURLOPT_MUTE
TRUE
для полного отключения сообщений функций cURL.Удалена в cURL 7.15.5 (Можно использовать опцию CURLOPT_RETURNTRANSFER) CURLOPT_NETRC
TRUE
для считывания файла ~/.netrc на предмет логина и пароля для удаленного сайта, с которым устанавливается соединение.CURLOPT_NOBODY
TRUE
для исключения тела ответа из вывода. Метод запроса устанавливается в HEAD. Смена этого параметра вFALSE
не меняет его обратно в GET.CURLOPT_NOPROGRESS
TRUE
для отмены индикатора прогресса при передачах cURL.Замечание:
PHP автоматически устанавливает этот параметр в
TRUE
, меняйте его только для отладочных целей.CURLOPT_NOSIGNAL
TRUE
для игнорирования любой функции cURL, посылающей сигналы PHP процессу. Этот параметр включен по умолчанию в многопоточных SAPIs для корректной работы таймаут параметров.Добавлен в версии cURL 7.10. CURLOPT_POST
TRUE
для использования обычного HTTP POST. Данный метод POST использует обычный application/x-www-form-urlencoded, обычно используемый в HTML-формах.CURLOPT_PUT
TRUE
для загрузки файла методом HTTP PUT. Используемый файл должен быть установлен с помощью параметровCURLOPT_INFILE
иCURLOPT_INFILESIZE
.CURLOPT_RETURNTRANSFER
TRUE
для возврата результата передачи в качестве строки из curl_exec() вместо прямого вывода в браузер.CURLOPT_SAFE_UPLOAD
TRUE
для отключения поддержки префикса @ для загружаемых файлов вCURLOPT_POSTFIELDS
, который означает, что значения, переданные с @ могут безопасно передаваться в виде полей. Вместо префикса можно использовать опцию CURLFiled.Добавлена в PHP 5.5.0 со значением по умолчанию FALSE
. В PHP 5.6.0 стала по умолчанию равнаTRUE
.CURLOPT_SSL_VERIFYPEER
FALSE
для остановки cURL от проверки сертификата узла сети. Альтернативные сверяемые сертификаты могут быть указаны с помощью параметраCURLOPT_CAINFO
или директории с сертификатами, указываемой параметромCURLOPT_CAPATH
.По умолчанию равно TRUE
начиная с версии cURL 7.10. Дистрибутив по умолчанию устанавливается начиная с версии cURL 7.10.CURLOPT_TRANSFERTEXT
TRUE
для использования ASCII режима при FTP передачах. При использовании LDAP данные возвращаются простым текстом вместо HTML. В Windows системах поток STDOUT не устанавливается в бинарный режим.CURLOPT_UNRESTRICTED_AUTH
TRUE
для продолжения посылки логина и пароля при редиректах (при использованииCURLOPT_FOLLOWLOCATION
), даже при изменении имени хоста.CURLOPT_UPLOAD
TRUE
для подготовки к загрузке файла на сервер.CURLOPT_VERBOSE
TRUE
для вывода дополнительной информации. Записывает вывод в поток STDERR, или файл, указанный параметромCURLOPT_STDERR
.Для следующих значений параметра
option
, параметрvalue
должен быть типа integer:Параметр Устанавливаемое значение value
Замечания CURLOPT_BUFFERSIZE
Размер буфера, используемого при каждом чтении. Однако, нет никакой гарантии что данный запрос будет завершен. Добавлен в версии cURL 7.10. CURLOPT_CLOSEPOLICY
Одна из констант CURLCLOSEPOLICY_*
.Замечание:
Эта опция устарела, так как никогда не была реализована в cURL и не работала.
Удалена в PHP 5.6.0. CURLOPT_CONNECTTIMEOUT
Количество секунд ожидания при попытке соединения. Используйте 0 для бесконечного ожидания. CURLOPT_CONNECTTIMEOUT_MS
Количество миллисекунд ожидания при попытке соединения. Используйте 0 для бесконечного ожидания. Если библиотека libcurl скомпилирована с использованием стандартного системного преобразователя имен, то соединение будет по-прежнему использовать полносекундное ожидание в качестве тайм-аута с минимально допустимым тайм-аутом в 1 секунду. Добавлен в версии cURL 7.16.2. Доступно, начиная с версии PHP 5.2.3. CURLOPT_DNS_CACHE_TIMEOUT
Количество секунд, в течение которых в памяти хранятся DNS-записи. По умолчанию этот параметр равен 120 (2 минуты). CURLOPT_FTPSSLAUTH
Метод FTP аутентификации (в активном режиме): CURLFTPAUTH_SSL (сначала проверяется SSL), CURLFTPAUTH_TLS (сначала проверяется TLS) или CURLFTPAUTH_DEFAULT (cURL решает сама). Добавлен в версии cURL 7.12.2. CURLOPT_HTTP_VERSION
CURL_HTTP_VERSION_NONE
(по умолчанию, CURL сама выбирает используемую версию),CURL_HTTP_VERSION_1_0
(принудительное использование HTTP/1.0), orCURL_HTTP_VERSION_1_1
(принудительное использование HTTP/1.1).CURLOPT_HTTPAUTH
Используемые HTTP методы авторизации. Используемые параметры:
CURLAUTH_BASIC
,CURLAUTH_DIGEST
,CURLAUTH_GSSNEGOTIATE
,CURLAUTH_NTLM
,CURLAUTH_ANY
, andCURLAUTH_ANYSAFE
.Можно использовать побитовый оператор | (или) для комбинации нескольких методов вместе. В этом случае cURL опросит сервер на предмет поддерживаемых методов авторизации и выберет лучший из них.
CURLAUTH_ANY
- это псевдоним CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.CURLAUTH_ANYSAFE
- это псевдоним CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.CURLOPT_INFILESIZE
Ожидаемый размер файла, в байтах, при загрузке файла на удаленный сервер. Учтите, что использование этой опции не остановит дальнейшую посылку данных, превышающих это значение, так как посылаемые данные зависят от результата CURLOPT_READFUNCTION
.CURLOPT_LOW_SPEED_LIMIT
Верхний порог скорости передачи данных, в байтах в секунду. Проверка происходит в течение CURLOPT_LOW_SPEED_TIME
секунд, после чего PHP считает передачу слишком медленной и прерывает ее.CURLOPT_LOW_SPEED_TIME
Максимальное количество секунд, в течение которых скорость передачи не должна превышать CURLOPT_LOW_SPEED_LIMIT
, иначе PHP пометит передачу как слишком медленную и прекратит ее.CURLOPT_MAXCONNECTS
Максимальное количество постоянных соединений. При достижении лимита для определения закрываемого соединения используется параметр CURLOPT_CLOSEPOLICY
.CURLOPT_MAXREDIRS
Максимальное количество принимаемых редиректов. Используйте этот параметр вместе с параметром CURLOPT_FOLLOWLOCATION
.CURLOPT_PORT
Альтернативный порт соединения. CURLOPT_POSTREDIR
Битовая маска, содержащая 1 (301 Moved Permanently), 2 (302 Found) и 4 (303 See Other), чтобы задавать должен ли метод HTTP POST обрабатываться при включенной опции CURLOPT_FOLLOWLOCATION
, если произошел указанный тип перенаправления.Добавлено в cURL 7.19.1. Доступно с PHP 5.3.2. CURLOPT_PROTOCOLS
Битовая маска из значений
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_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_SOCKS5
.Добавлен в версии cURL 7.10. CURLOPT_REDIR_PROTOCOLS
Битовая маска из значений CURLPROTO_*
. Данная битовая масска ограничивает протоколы используемые libcurl при редиректе (при включенном параметреCURLOPT_FOLLOWLOCATION
). Это позволяет ограничить набор используемых протоколов при редиректах для некоторых передач. По умолчанию, libcurl поддерживает все протоколы, кроме FILE и SCP. В версиях, предшествовавших 7.19.4, перенаправление использовалось для всех протоколов без исключения. Смотрите также описание параметраCURLOPT_PROTOCOLS
для списка констант со значениями протоколов.Добавлен в версии cURL 7.19.4. CURLOPT_RESUME_FROM
Смещение начала передачи, в байтах. CURLOPT_SSL_VERIFYHOST
Используйте 1 для проверки существования общего имени в сертификате SSL. Используйте 2 для проверки существования общего имени и также его совпадения с указанным хостом. В боевом окружении значение этого параметра должно быть 2 (установлено по умолчанию). Поддержка значения 1 убрана в cURL 7.28.1 CURLOPT_SSLVERSION
Одна из констант CURL_SSLVERSION_DEFAULT
(0),CURL_SSLVERSION_TLSv1
(1),CURL_SSLVERSION_SSLv2
(2),CURL_SSLVERSION_SSLv3
(3),CURL_SSLVERSION_TLSv1_0
(4),CURL_SSLVERSION_TLSv1_1
(5) илиCURL_SSLVERSION_TLSv1_2
(6).Замечание:
Рекомендуется не устанавливать эту опцию и оставить значение по умолчанию. Установка в 2 или 3 опасно и допускает применение известных уязвимостей в SSLv2 и SSLv3.
CURLOPT_TIMECONDITION
Способ трактовки параметра CURLOPT_TIMEVALUE
. ИспользуйтеCURL_TIMECOND_IFMODSINCE
для возвращения страницы, только если она была изменена со времени, указанного в параметреCURLOPT_TIMEVALUE
. Если страница не была изменена, вернется заголовок "304 Not Modified", подразумевая, что параметрCURLOPT_HEADER
установлен вTRUE
. ИспользуйтеCURL_TIMECOND_IFUNMODSINCE
для обратного эффекта. По умолчанию используетсяCURL_TIMECOND_IFMODSINCE
.CURLOPT_TIMEOUT
Максимально позволенное количество секунд для выполнения cURL-функций. CURLOPT_TIMEOUT_MS
Максимально позволенное количество миллисекунд для выполнения cURL-функций. Если libcurl собрана с использованием обычного системного распознавателя имен, то этот промежуток соединения все еще будет использовать секундное округление таймаутов, с минимально разрешенным таймаутом в одну секунду. Добавлен в версии cURL 7.16.2. Доступен, начиная с версии PHP 5.2.3. CURLOPT_TIMEVALUE
Количество секунд, начиная с 1 января 1970 года. Это время будет использовано параметром CURLOPT_TIMECONDITION
. По умолчанию, используется параметрCURL_TIMECOND_IFMODSINCE
.CURLOPT_MAX_RECV_SPEED_LARGE
Если скорость скачки превысит это значение (указанное в байтах в секунду) в среднем в течение всей передачи, то скачка будет приостановлена для поддержания средней скорости меньше либо равной данному параметру. По умолчанию скорость не ограничивается. Добавлен в версии cURL 7.15.5. Доступен, начиная с версии PHP 5.4.0. CURLOPT_MAX_SEND_SPEED_LARGE
Если загрузка на сервер превысит это значение (указанное в байтах в секунду) в среднем в течение всей передачи, то загрузка будет приостановлена для поддержания средней скорости меньше либо равной данному параметру. По умолчанию скорость не ограничивается. Добавлен в версии cURL 7.15.5. Доступен, начиная с версии PHP 5.4.0. CURLOPT_SSH_AUTH_TYPES
Битовая маска, состоящая из одной или более констант: CURLSSH_AUTH_PUBLICKEY
,CURLSSH_AUTH_PASSWORD
,CURLSSH_AUTH_HOST
,CURLSSH_AUTH_KEYBOARD
. УстановитеCURLSSH_AUTH_ANY
для того, чтобы libcurl выбрал одну из них самостоятельно.Добавлено в cURL 7.16.1. CURLOPT_IPRESOLVE
Позволяет приложению выбрать вид IP адреса, с которым определяется имя хоста. Это необходимо, если используется имя хоста, которое получается с использованием более одной версии IP адреса. Возможными значениями могут быть CURL_IPRESOLVE_WHATEVER
,CURL_IPRESOLVE_V4
,CURL_IPRESOLVE_V6
, и по умолчаниюCURL_IPRESOLVE_WHATEVER
.Добавлено в cURL 7.10.8. Для следующих значений параметра
option
, параметрvalue
должен быть типа string:Параметр Устанавливаемое значение value
Замечания CURLOPT_CAINFO
Имя файла, содержащего один или более сертификатов, с которыми будут сверяться узлы. Этот параметр имеет смысл только при использовании совместно с CURLOPT_SSL_VERIFYPEER
.Требует абсолютный путь. CURLOPT_CAPATH
Директория, содержащая несколько CA сертификатов. Используйте этот параметр совместно с CURLOPT_SSL_VERIFYPEER
.CURLOPT_COOKIE
Содержимое заголовка "Cookie: ", используемого в HTTP-запросе. Обратите внимание, что несколько cookies разделяются точкой с запятой с последующим пробелом (например, "fruit=apple; colour=red") CURLOPT_COOKIEFILE
Имя файла, содержащего cookies. Данный файл должен быть в формате Netscape или просто заголовками HTTP, записанными в файл. Если в качестве имени файла передана пустая строка, то cookies сохраняться не будут, но их обработка все еще будет включена. CURLOPT_COOKIEJAR
Имя файла, в котором будут сохранены все внутренние cookies текущей передачи после закрытия дескриптора, например, после вызова curl_close. CURLOPT_CUSTOMREQUEST
Собственный метод запроса, используемый вместо "GET" или "HEAD" при выполнении HTTP-запроса. Это полезно при запросах "DELETE" или других, более редких HTTP-запросах. Корректными значениями будут слова наподобие "GET", "POST", "CONNECT" и так далее; т.е. не вводите здесь всю строку с HTTP-запросом. Например, указание "GET /index.html HTTP/1.0\r\n\r\n" будет неправильным.
Замечание:
Не используйте эту возможность пока не убедитесь, что сервер поддерживает данный тип запроса.
CURLOPT_EGDSOCKET
Наподобие CURLOPT_RANDOM_FILE
, за исключением того, что имя файла устанавливается в сокет Entropy Gathering Daemon.CURLOPT_ENCODING
Содержимое заголовка "Accept-Encoding: ". Это позволяет декодировать запрос. Поддерживаемыми кодировками являются "identity", "deflate" и "gzip". Если передана пустая строка, "", посылается заголовок, содержащий все поддерживаемые типы кодировок. Добавлен в версии cURL 7.10. CURLOPT_FTPPORT
Значение, которое будет использоваться для определения IP-адреса для команды "PORT" FTP-протокола. Команда "PORT" сообщает серверу, с каким IP-адресом он должен устанавливать соединение. Это может быть IP-адрес, имя хоста, имя сетевого интерфейса (под Unix), или просто '-' для использования системного IP-адреса по умолчанию. CURLOPT_INTERFACE
Имя используемого сетевого интерфейса. Может быть именем интерфейса, IP адресом или именем хоста. CURLOPT_KEYPASSWD
Пароль, который требуется для использования приватного ключа CURLOPT_SSLKEY
илиCURLOPT_SSH_PRIVATE_KEYFILE
.Добавлено в cURL 7.16.1. CURLOPT_KRB4LEVEL
Уровень безопасности KRB4 (Kerberos 4). Любое из следующих значений (в порядке от слабого к самому сильному) корректно: "clear", "safe", "confidential", "private".. Если указанная строка отличается от данных значений, будет использовано значение "private". Установка этого параметра в NULL
полностью отключит безопасность KRB4. На данный момент безопасность KRB4 работает только с FTP транзакциями.CURLOPT_POSTFIELDS
Все данные, передаваемые в HTTP POST-запросе. Для передачи файла, укажите перед именем файла @, а также используйте полный путь к файлу. Тип файла также может быть указан с помощью формата ';type=mimetype', следующим за именем файла. Этот параметр может быть передан как в качестве url-закодированной строки, наподобие 'para1=val1¶2=val2&...', так и в виде массива, ключами которого будут имена полей, а значениями - их содержимое. Если value
является массивом, заголовок Content-Type будет установлен в значение multipart/form-data. Начиная с версии PHP 5.2.0, при передаче файлов с префиксом @,value
должен быть массивом. С версии PHP 5.5.0, префикс @ устарел и файлы можно отправлять с помощью CURLFile. Префикс @ можно отключить, чтобы можно было передавать значения, начинающиеся с @, задав опциюCURLOPT_SAFE_UPLOAD
в значениеTRUE
.CURLOPT_PROXY
HTTP-прокси, через который будут направляться запросы. CURLOPT_PROXYUSERPWD
Логин и пароль, записанные в виде "[username]:[password]", используемые при соединении через прокси. CURLOPT_RANDOM_FILE
Имя файла, используемого для инициализации генератора случайных чисел для SSL. CURLOPT_RANGE
Диапазон данных, которые нужно загрузить, в формате "X-Y", причем либо X, либо Y могут быть опущены. Протокол HTTP также поддерживает передачу нескольких диапазонов, разделенных запятыми, они задаются в формате "X-Y,N-M". CURLOPT_REFERER
Содержимое заголовка "Referer: ", который будет использован в HTTP-запросе. CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
Строка, содержащая 32 шестнадцатеричных цифры. Строка должна являться контрольной суммой по алгоритму MD5 публичного ключа удаленного компьютера и libcurl будет сбрасывать соединение к удаленному хосту до тех пор, пока контрольная сумма не будет соответствовать публичному ключу. Эта опция предназначена только для передачи данных с помощью SCP и SFTP. Добавлено в cURL 7.17.1. CURLOPT_SSH_PUBLIC_KEYFILE
Имя файла для вашего публичного ключа. Если не задано, то libcurl использует по умолчанию файл $HOME/.ssh/id_dsa.pub, если переменная окружения HOME установлена и файл "id_dsa.pub" в текущей директории, если переменная HOME не установлена. Добавлено в cURL 7.16.1. CURLOPT_SSH_PRIVATE_KEYFILE
Имя файла для вашего приватного ключа. Если не задано, то libcurl использует по умолчанию файл $HOME/.ssh/id_dsa, если переменная окружения HOME установлена и файл "id_dsa" в текущей директории, если переменная HOME не установлена. Если файл защищен паролем, установите пароль с помощью CURLOPT_KEYPASSWD
.Добавлено в cURL 7.16.1. CURLOPT_SSL_CIPHER_LIST
Список шифров, используемый в SSL-передачах. Например, RC4-SHA и TLSv1 являются корректными списками шифров. CURLOPT_SSLCERT
Имя файла с корректно отформатированным PEM-сертификатом. CURLOPT_SSLCERTPASSWD
Пароль, необходимый для использования сертификата CURLOPT_SSLCERT
.CURLOPT_SSLCERTTYPE
Формат сертификата. Поддерживаются форматы "PEM" (по умолчанию), "DER" и "ENG". Добавлен в версии cURL 7.9.3. CURLOPT_SSLENGINE
Идентификатор механизма шифрования для закрытого ключа SSL, указанного в параметре CURLOPT_SSLKEY
.CURLOPT_SSLENGINE_DEFAULT
Идентификатор механизма шифрования, используемого для ассиметричных операций шифрования. CURLOPT_SSLKEY
Имя файла с закрытым ключом SSL. CURLOPT_SSLKEYPASSWD
Тайный пароль, необходимый для использования закрытого ключа SSL, указанного параметром
CURLOPT_SSLKEY
.Замечание:
Так как этот параметр содержит ценный пароль, помните, что данный PHP-скрипт нужно хранить в безопасном месте.
CURLOPT_SSLKEYTYPE
Тип закрытого ключа SSL, указанного в параметре CURLOPT_SSLKEY
. Поддерживаются следующие типы ключей: "PEM" (по умолчанию), "DER" и "ENG".CURLOPT_URL
Загружаемый URL. Данный параметр может быть также установлен при инициализации сеанса с помощью curl_init(). CURLOPT_USERAGENT
Содержимое заголовка "User-Agent: ", посылаемого в HTTP-запросе. CURLOPT_USERPWD
Логин и пароль, используемые при соединении, указанные в формате "[username]:[password]". Для следующих значений параметра
option
, параметрvalue
должен быть массивом:Параметр Устанавливаемое значение value
Замечания CURLOPT_HTTP200ALIASES
Массив HTTP 200 ответов, которые будут трактоваться корректными ответами, а не ошибочными. Добавлен в версии cURL 7.10.3. CURLOPT_HTTPHEADER
Массив устанавливаемых HTTP-заголовков, в формате array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTE
Массив FTP-команд, выполняемых на сервере, после выполнения FTP-запроса. CURLOPT_QUOTE
Массив FTP-команд, выполняемых на сервере, перед выполнением FTP-запроса. Для следующих значений параметра
option
, параметрvalue
должен быть потоковым дескриптором (возвращаемым, например, функцией fopen()):Параметр Устанавливаемое значение value
CURLOPT_FILE
Файл, в который будет записан результат передачи. По умолчанию используется поток вывода STDOUT (окно браузера). CURLOPT_INFILE
Файл, из которого должно идти чтение данных, при загрузке на сервер. CURLOPT_STDERR
Альтернативное файл для вывода ошибок, используемый вместо потока ошибок STDERR. CURLOPT_WRITEHEADER
Файл, в который будут записаны заголовки текущей операции. Для следующих значений параметра
option
, параметрvalue
должен быть правильным именем функции или замыканием:Параметр Устанавливаемое значение value
CURLOPT_HEADERFUNCTION
Callback-функция принимает два параметра. Первым параметром является дескриптор cURL, вторым параметром является строка с записываемыми заголовками. Заголовки должны быть записаны с помощью данной callback-функции. Должна возвратить количество записанных байт. CURLOPT_PASSWDFUNCTION
Callback-функция принимает три параметра. Первым параметром является дескриптор cURL, вторым параметром является строка с запросом пароля, третьим параметром является максимальная длина пароля. Должна возвратить строку, содержащую пароль. CURLOPT_PROGRESSFUNCTION
Callback-функция принимает пять параметров. Первый является декскриптором cURL, второй - общим количеством байт, которое ожидается загрузить с сервера, третий - количество уже загруженных байт, четвертый - общее количество байт, которое ожидается отправить на сервер, и пятый - количество уже отправленных байт.
Замечание:
Callback-функция вызывается только, если опция
CURLOPT_NOPROGRESS
установлена в значениеFALSE
.Можно вернуть ненулевое значение, чтобы отменить передачу. В этом случае будет выставлена ошибка
CURLE_ABORTED_BY_CALLBACK
.CURLOPT_READFUNCTION
Callback-функция принимает три параметра. Первым параметром является дескриптор cURL, вторым параметром является ресурс потока, переданный cURL через опцию CURLOPT_INFILE
, а третьим параметром является максимально разрешенное количество данных для чтения. Callback-функция должна возвратить строку, с длиной не превышающей запрошенного количества данных, обычно с помощью чтения из переданного потокового ресурса. Должна возвратить пустую строку для сигнала о конце файла EOF.CURLOPT_WRITEFUNCTION
Callback-функция принимает два параметра. Первым параметром является дескриптор cURL, а вторым параметром является строка с записываемыми данными. Данные должны быть сохранены с помощью данной функции. Она должна возвратить точное количество записанных байт, иначе закачка будет прервана с ошибкой. Другие значения:
Параметр Устанавливаемое значение value
CURLOPT_SHARE
Результат выполнения функции curl_share_init(). Позволяет обработчику cURL использовать данные из общего обработчика.
Возвращаемые значения
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Список изменений
Версия | Описание |
---|---|
5.6.0 |
Опция CURL_SAFE_UPLOAD теперь имеет значение по умолчанию равное TRUE .
|
5.6.0 |
Удалена опция CURLOPT_CLOSEPOLICY и связанные с ней значения.
|
5.5.0 |
Ресурс cURL добавлен первым аргументом в callback-функцию
CURLOPT_PROGRESSFUNCTION .
|
5.5.0 |
Добавлена опция CURLOPT_SHARE .
|
5.3.0 |
Добавлена опция CURLOPT_PROGRESSFUNCTION .
|
5.2.10 |
Добавлены параметры CURLOPT_PROTOCOLS и
CURLOPT_REDIR_PROTOCOLS .
|
5.1.0 |
Добавлены параметры CURLOPT_AUTOREFERER ,
CURLOPT_BINARYTRANSFER ,
CURLOPT_FTPSSLAUTH ,
CURLOPT_PROXYAUTH и
CURLOPT_TIMECONDITION .
|
5.0.0 |
Добавлены параметры CURLOPT_FTP_USE_EPRT ,
CURLOPT_NOSIGNAL ,
CURLOPT_UNRESTRICTED_AUTH ,
CURLOPT_BUFFERSIZE ,
CURLOPT_HTTPAUTH ,
CURLOPT_PROXYPORT ,
CURLOPT_PROXYTYPE ,
CURLOPT_SSLCERTTYPE и
CURLOPT_HTTP200ALIASES .
|
Примеры
Пример #1 Инициализация сеанса CURL и загрузка web-страницы
<?php
// создание нового ресурса cURL
$ch = curl_init();
// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// загрузка страницы и выдача её браузеру
curl_exec($ch);
// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>
Пример #2 Закачка файла
<?php
/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/
$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
?>
Результат выполнения данного примера:
Array ( [name] => Foo ) Array ( [file] => Array ( [name] => test.png [type] => image/png [tmp_name] => /tmp/phpcpjNeQ [error] => 0 [size] => 279 ) )
Примечания
Замечание:
Передача массива в
CURLOPT_POSTFIELDS
закодирует данные в виде multipart/form-data, тогда как передача URL-кодированной строки закодирует данные в виде application/x-www-form-urlencoded.
Вернуться к: cURL