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_AUTOREFERERTRUEдля автоматической установки поля Referer: в запросах, перенаправленных заголовком Location:.CURLOPT_BINARYTRANSFERTRUEдля возврата необработанного ответа при использовании константыCURLOPT_RETURNTRANSFER.С PHP 5.1.3 эта опция больше не требуется: необработанный вывод всегда возвращается при использовании опции CURLOPT_RETURNTRANSFER.CURLOPT_COOKIESESSIONTRUEдля указания текущему сеансу начать новую "сессию" cookies. Это заставит libcurl проигнорировать все "сессионные" cookies, которые она должна была бы загрузить, полученные из предыдущей сессии. По умолчанию, libcurl всегда сохраняет и загружает все cookies, вне зависимости от того, являются ли они "сессионными" или нет. "Сессионные" cookies - это cookies без срока истечения, которые должны существовать только для текущей "сессии".CURLOPT_CERTINFOTRUEдля вывода информации о сертификате SSL в поток STDERR при безопасных соединениях.Добавлена в cURL 7.19.1. Доступна, начиная с версии PHP 5.3.2. Для корректной работы требует включенной опции CURLOPT_VERBOSE.CURLOPT_CONNECT_ONLYTRUEсообщает библиотеке, чтобы она провела необходимые аутентификацию прокси и настройку соединения, но не передавала данные. Эта опция реализована для HTTP, SMTP и POP3.Добавлена в 7.15.2. Доступна с версии PHP 5.5.0. CURLOPT_CRLFTRUEдля преобразования концов строк Unix в CRLF.CURLOPT_DNS_USE_GLOBAL_CACHETRUEдля использования глобального кэша DNS. Этот параметр не является потокобезопасным и по умолчанию включен.CURLOPT_FAILONERRORTRUEдля подробного отчета при неудаче, если полученный HTTP-код больше или равен 400. Поведение по умолчанию возвращает страницу как обычно, игнорируя код.CURLOPT_FILETIMETRUEдля попытки получения даты модификации удаленного документа. Это значение может быть получено с помощью параметраCURLINFO_FILETIMEиз функции curl_getinfo().CURLOPT_FOLLOWLOCATIONTRUEдля следования любому заголовку "Location: ", отправленному сервером в своем ответе (учтите, что это происходит рекурсивно, PHP будет следовать за всеми посылаемыми заголовками "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_NODELAYЗадает на постоянной основе должна ли опция TCP_NODELAY установлена или очищена (1 = установлена, 0 = очищена). По умолчанию опция очищается. Доступна с версии PHP 5.2.1 для версий собранных с libcurl 7.11.2 или новее. CURLOPT_FTPASCIIПсевдоним CURLOPT_TRANSFERTEXT. Используйте его вместо этого.CURLOPT_FTPLISTONLYTRUEдля возврата только списка имен из FTP директории.CURLOPT_HEADERTRUEдля включения заголовков в вывод.CURLINFO_HEADER_OUTTRUEдля отслеживания строки запроса дескриптора.Доступен, начиная с версии PHP 5.1.3. Префикс CURLINFO_употреблен специально.CURLOPT_HTTPGETTRUEдля сброса метода HTTP-запроса в метод GET. Так как GET используется по умолчанию, этот параметр необходим только в случае, если метод запроса был ранее изменен.CURLOPT_HTTPPROXYTUNNELTRUEдля туннелирования через указанный HTTP-прокси.CURLOPT_MUTETRUEдля полного отключения сообщений функций cURL.Удалена в cURL 7.15.5 (Можно использовать опцию CURLOPT_RETURNTRANSFER) CURLOPT_NETRCTRUEдля считывания файла ~/.netrc на предмет логина и пароля для удаленного сайта, с которым устанавливается соединение.CURLOPT_NOBODYTRUEдля исключения тела ответа из вывода. Метод запроса устанавливается в HEAD. Смена этого параметра вFALSEне меняет его обратно в GET.CURLOPT_NOPROGRESSTRUEдля отмены индикатора прогресса при передачах cURL.Замечание:
PHP автоматически устанавливает этот параметр в
TRUE, меняйте его только для отладочных целей.CURLOPT_NOSIGNALTRUEдля игнорирования любой функции cURL, посылающей сигналы PHP процессу. Этот параметр включен по умолчанию в многопоточных SAPIs для корректной работы таймаут параметров.Добавлен в версии cURL 7.10. CURLOPT_POSTTRUEдля использования обычного HTTP POST. Данный метод POST использует обычный application/x-www-form-urlencoded, обычно используемый в HTML-формах.CURLOPT_PUTTRUEдля загрузки файла методом HTTP PUT. Используемый файл должен быть установлен с помощью параметровCURLOPT_INFILEиCURLOPT_INFILESIZE.CURLOPT_RETURNTRANSFERTRUEдля возврата результата передачи в качестве строки из curl_exec() вместо прямого вывода в браузер.CURLOPT_SAFE_UPLOADTRUEдля отключения поддержки префикса @ для загружаемых файлов вCURLOPT_POSTFIELDS, который означает, что значения, переданные с @ могут безопасно передаваться в виде полей. Вместо префикса можно использовать опцию CURLFiled.Добавлена в PHP 5.5.0 со значением по умолчанию FALSE. В PHP 5.6.0 стала по умолчанию равнаTRUE.CURLOPT_SSL_VERIFYPEERFALSEдля остановки cURL от проверки сертификата узла сети. Альтернативные сверяемые сертификаты могут быть указаны с помощью параметраCURLOPT_CAINFOили директории с сертификатами, указываемой параметромCURLOPT_CAPATH.По умолчанию равно TRUEначиная с версии cURL 7.10. Дистрибутив по умолчанию устанавливается начиная с версии cURL 7.10.CURLOPT_TRANSFERTEXTTRUEдля использования ASCII режима при FTP передачах. При использовании LDAP данные возвращаются простым текстом вместо HTML. В Windows системах поток STDOUT не устанавливается в бинарный режим.CURLOPT_UNRESTRICTED_AUTHTRUEдля продолжения посылки логина и пароля при редиректах (при использованииCURLOPT_FOLLOWLOCATION), даже при изменении имени хоста.CURLOPT_UPLOADTRUEдля подготовки к загрузке файла на сервер.CURLOPT_VERBOSETRUEдля вывода дополнительной информации. Записывает вывод в поток 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_VERSIONCURL_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_PROXYHTTP-прокси, через который будут направляться запросы. 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()):Параметр Устанавливаемое значение valueCURLOPT_FILEФайл, в который будет записан результат передачи. По умолчанию используется поток вывода STDOUT (окно браузера). CURLOPT_INFILEФайл, из которого должно идти чтение данных, при загрузке на сервер. CURLOPT_STDERRАльтернативное файл для вывода ошибок, используемый вместо потока ошибок STDERR. CURLOPT_WRITEHEADERФайл, в который будут записаны заголовки текущей операции. Для следующих значений параметра
option, параметрvalueдолжен быть правильным именем функции или замыканием:Параметр Устанавливаемое значение valueCURLOPT_HEADERFUNCTIONCallback-функция принимает два параметра. Первым параметром является дескриптор cURL, вторым параметром является строка с записываемыми заголовками. Заголовки должны быть записаны с помощью данной callback-функции. Должна возвратить количество записанных байт. CURLOPT_PASSWDFUNCTIONCallback-функция принимает три параметра. Первым параметром является дескриптор cURL, вторым параметром является строка с запросом пароля, третьим параметром является максимальная длина пароля. Должна возвратить строку, содержащую пароль. CURLOPT_PROGRESSFUNCTIONCallback-функция принимает пять параметров. Первый является декскриптором cURL, второй - общим количеством байт, которое ожидается загрузить с сервера, третий - количество уже загруженных байт, четвертый - общее количество байт, которое ожидается отправить на сервер, и пятый - количество уже отправленных байт.
Замечание:
Callback-функция вызывается только, если опция
CURLOPT_NOPROGRESSустановлена в значениеFALSE.Можно вернуть ненулевое значение, чтобы отменить передачу. В этом случае будет выставлена ошибка
CURLE_ABORTED_BY_CALLBACK.CURLOPT_READFUNCTIONCallback-функция принимает три параметра. Первым параметром является дескриптор cURL, вторым параметром является ресурс потока, переданный cURL через опцию CURLOPT_INFILE, а третьим параметром является максимально разрешенное количество данных для чтения. Callback-функция должна возвратить строку, с длиной не превышающей запрошенного количества данных, обычно с помощью чтения из переданного потокового ресурса. Должна возвратить пустую строку для сигнала о конце файла EOF.CURLOPT_WRITEFUNCTIONCallback-функция принимает два параметра. Первым параметром является дескриптор cURL, а вторым параметром является строка с записываемыми данными. Данные должны быть сохранены с помощью данной функции. Она должна возвратить точное количество записанных байт, иначе закачка будет прервана с ошибкой. Другие значения:
Параметр Устанавливаемое значение valueCURLOPT_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