Руководство по PHP
Пред. |  | След.

# curl_setopt

(PHP 4 >= 4.0.2, PHP 5)

curl_setopt -- Устанавливает параметр для сеанса CURL

## Описание

bool curl_setopt ( resource ch, string option, mixed value )

Функция curl_setopt() Устанавливает параметр для сеанса CURL, заданного аргументом `ch`. Аргумент `option` задает устанавливаемый параметр, а `value` - его значение.

Для перечисленных ниже параметров, `value` должен быть целым числом:

- `CURLOPT_INFILESIZE`: при закачке файла на удаленный сервер, следует использовать этот параметр для указания ожидаемого размера файла.

- `CURLOPT_VERBOSE`: При установке этого параметра в ненулевое значение cURL будет выводить подробные сообщения о всех производимых действиях.

- `CURLOPT_HEADER`: При установке этого параметра в ненулевое значение результат будет включать полученные заголовки.

- `CURLOPT_NOPROGRESS`: При установке этого параметра в ненулевое значение не будет выводиться индикатор прогресса операции.

  > Замечание: В PHP этот параметр устанавливается в ненулевое значение по умолчнию. Изменять его значение рекомендуется только при отладке.

- `CURLOPT_NOBODY`: При установке этого параметра в ненулевое значение результат не будет включать документ (например, вам нужно получить только заголовки).

- `CURLOPT_FAILONERROR`: При установке этого параметра в ненулевое значение, получение HTTP кода более 300 считается ошибкой.

- `CURLOPT_UPLOAD`: Установка этого параметра в ненулевое значение означает, что будет производиться закачка файла на удаленный сервер.

- `CURLOPT_POST`: При установке этого параметра в ненулевое значение будет отправлен HTTP запрос методом POST типа `application/x-www-form-urlencoded`, используемый браузерами при отправке форм.

- `CURLOPT_FTPLISTONLY`: При установке этого параметра в ненулевое значение будет получен список файлов в директории FTP сервера.

- `CURLOPT_FTPAPPEND`: При установке этого параметра в ненулевое значение данные будут добавляться к файлу на FTP сервере, в противном случае файл будет перезаписан.

- `CURLOPT_NETRC`: При установке этого параметра в ненулевое значение будет сделана попытка найти имя пользователя и пароль к удаленному серверу в файле `~./netrc`.

- `CURLOPT_FOLLOWLOCATION`: При установке этого параметра в ненулевое значение, при получении HTTP заголовка "Location: " будет происходить перенаправление на указанный этим заголовком URL (это действие выполняется рекурсивно, для каждого полученного заголовка "Location:").

- `CURLOPT_PUT`: При установке этого параметра в ненулевое значение, будет производиться закачка файла методом HTTP PUT. Файл задается параметрами `CURLOPT_INFILE` и `CURLOPT_INFILESIZE`.

- `CURLOPT_MUTE`: При установке этого параметра в ненулевое значение, все сообщения cURL будут подавляться.

- `CURLOPT_TIMEOUT`: Задает масимальное время выполнения операции в секундах.

- `CURLOPT_LOW_SPEED_LIMIT`: Задает минимальную скорость передачи в байтах в секунду. Если в течении времени, заданного параметром `CURLOPT_LOW_SPEED_TIME`, скорость передачи будет меньше этого значения, операция будет прервана.

- `CURLOPT_LOW_SPEED_TIME`: Задает время в секундах, в течение которого скорость передачи должна быть ниже, чем `CURLOPT_LOW_SPEED_LIMIT`, чтобы операция была признана слишком медленной и прервана.

- `CURLOPT_RESUME_FROM`: Задает позицию в файле в байтах, с которой начнется передача данных.

- `CURLOPT_CAINFO`: Имя файла, содержащего один или более сертификатов, которые будут использованы при проверке подлинности удаленного сервера. Имеет значение только совместно с параметром `CURLOPT_SSL_VERIFYPEER`.

- `CURLOPT_SSL_VERIFYPEER`: Установите этот параметр в ноль, чтобы запретить проверку сертификата удаленного сервера (начиная с curl 7.10, по умолчанию этот параметр имеет значение `TRUE`). Дополнительные сертификаты можно задать с помощью параметра `CURLOPT_CAINFO` (добавленного в in curl 7.9.8). Можно также указать путь к файлам сертификатов в параметре `CURLOPT_CAPATH`. Если `CURLOPT_SSL_VERIFYPEER` установлен в 0, возможно, также потребуется установить `CURLOPT_SSL_VERIFYHOST` в 1 или 0 (по умолчанию 2).

- `CURLOPT_SSLVERSION`: Целое число, указывающее, какую версию SSL использовать (2 или 3). По умолчанию версия SSL определяется автоматически, но в некоторых случаях требуется явное указание.

- `CURLOPT_SSL_VERIFYHOST`: Задает проверку имени, указанного в сертификате удаленного сервера, при установлении SSL соединения. Значение 1 означает проверку существования имени, значение 2 - кроме того, и проверку соответствия имени хоста.

- `CURLOPT_TIMECONDITION`: Задает способ интерпретации значения параметра `CURLOPT_TIMEVALUE`. Возможные значения: TIMECOND_IFMODSINCE или TIMECOND_ISUNMODSINCE. Применяется только для протокола HTTP.

- `CURLOPT_TIMEVALUE`: Задает время в секундах с 1 января 1970 г. Это значение будет использовано в соответствии со значением параметра `CURLOPT_TIMECONDITION` (по умолчанию TIMECOND_IFMODSINCE).

- `CURLOPT_RETURNTRANSFER`: При установке этого параметра в ненулевое значение CURL будет возвращать результат, а не выводить его.

Для перечисленных ниже параметров, `value` должен быть строкой:

- `CURLOPT_URL`: URL, с которым будет производиться операция. Значение этого параметра также может быть задано в вызове функции curl_init().

- `CURLOPT_USERPWD`: Стока с именем пользователя и паролем в виде [username]:[password].

- `CURLOPT_PROXYUSERPWD`: Стока с именем пользователя и паролем к HTTP прокси-серверу в виде [username]:[password].

- `CURLOPT_RANGE`: Задает участок файла, который нужно загрузить, в формате "X-Y" , причем X или Y могут быть опущены. Протокол HTTP также поддерживает передачу нескольких фрагментов файла, это задается в виде "X-Y,N-M".

- `CURLOPT_POSTFIELDS`: Строка, содержащая данные для HTTP POST запроса.

- `CURLOPT_REFERER`: Задает значение HTTP заголовка "Referer: ".

- `CURLOPT_USERAGENT`: Задает значение HTTP заголовка "User-Agent: ".

- `CURLOPT_FTPPORT`: Задает значение, которое будет использоваться для определения IP адреса для команды "PORT" протокола ftp. Команда "PORT" сообщает серверу, с каким IP адресом он должен устанавливать соединение. Это может быть IP адрес, имя хоста, имя сетевого интерфейса (под Unix), или просто '-' для использования IP адреса по умолчанию.

- `CURLOPT_COOKIE`: Содержимое заголовка "Cookie: ", который будет отправлен с HTTP запросом.

- `CURLOPT_SSLCERT`: Имя файла с сертификатом в формате PEM.

- `CURLOPT_SSLCERTPASSWD`: Пароль к файлу сертификата, заданному параметром `CURLOPT_SSLCERT`.

- `CURLOPT_COOKIEFILE`: Имя файла, содержащего данные cookie. Данные могут быть либо в формате Netscape, либо просто HTTP-заголовки.

- `CURLOPT_CUSTOMREQUEST`: Задает специальный метод, который будет использован в HTTP запросе вместо`GET` или `HEAD`. Это используется для отправке запросов `DELETE` или других, редко используемых. Допустимыми зачениями являются `GET`, `POST`, и т.д; не передавайте полный HTTP запрос в этом параметре. Например, 'GET /index.html HTTP/1.0\r\n\r\n' недопустимо.

  > Замечание: Перед использованием этого параметра убедитесь, что сервер, к которому вы обращаетесь, поддерживает требуемый метод.

- `CURLOPT_PROXY`: Имя HTTP прокси, через который будут направляться запросы.

- `CURLOPT_INTERFACE`: Имя используемого сетевого интерфейса. Может быть именем интерфейса, IP адресом или именем хоста.

- `CURLOPT_KRB4LEVEL`: Уровень безопасности KRB4 (Kerberos 4). Допустимы следующие значения (в порядке возрастания безопасности) : 'clear', 'safe', 'confidential', 'private'. Если переданное значение не входит в этот список, используется 'private'. Установка этого параметра в `NULL`, запрещает безопасность KRB4 . В настоящее время безопасность KRB4 поддерживается только для протокола FTP.

- `CURLOPT_HTTPHEADER`: Массив с HTTP заголовками.

- `CURLOPT_QUOTE`: Массив с FTP командами, которые будут выполнены перед выполнением основного запроса.

- `CURLOPT_POSTQUOTE`: Массив с FTP командами, которые будут выполнены после выполнения основного запроса.

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

- `CURLOPT_FILE`: Файл, в который будет выведен результат операции. По умолчанию STDOUT.

- `CURLOPT_INFILE`: Файл, содержащий данные для передачи.

- `CURLOPT_WRITEHEADER`: Файл, в который будут выведены полученные заголовки.

- `CURLOPT_STDERR`: Файл, в который будут выводиться сообщения об ошибках. По умолчанию STDERR.

Пример 1. Инициализация сеанса CURL и загрузка web-страницы

`<?php // инициализация сеанса $ch = curl_init(); // установка URL и других необходимых параметров curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_HEADER, 0); // загрузка страницы и выдача её браузеру curl_exec($ch); // завершение сеанса и освобождение ресурсов curl_close($ch); ?>`

Пред. | Начало | След.
curl_setopt_array | Уровень выше | curl_version