Manual do PHP
Anterior |  | Próxima

# curl_setopt

(PHP 4 >= 4.0.2, PHP 5)

curl_setopt -- Define uma opção para a transferencia CURL

## Descrição

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

A função curl_setopt() irá definir opções para uma sessão CURL identificada pelo parâmetro `ch`. O parâmetro `option` é a opção que você quer definir, e o `value` é o valor da opção dada por `option`.

O `value` deve ser um longo para as seguintes opções ( especificado no parâmetro (specified in the `option`):

- `CURLOPT_INFILESIZE`: Quando você esta enviando um arquivo para um lugar remoto, esta opção deve ser usada para dizer ao PHP o tamanho esperado do arquivo.

- `CURLOPT_VERBOSE`: Defina esta opção para um valor diferente de zero se você quer que o CURL reporte tudo o que esteja acontecendo.

- `CURLOPT_HEADER`: Defina esta opção para um valor diferente de zero se você quer que o cabeçalho seja incluído na saída.

- `CURLOPT_NOPROGRESS`: Defina esta opção para um valor diferente de zero se você não que o PHP mostre uma barra de progresso para as transferencias CURL.

  > Nota: O PHP automaticamente define esta opção para um valor diferente de zero, isto deve ser mudado apenas para o propósito de debug.

- `CURLOPT_NOBODY`: Defina esta opção para um valor diferente de zero se você não quiser que o corpo seja incluído na saída.

- `CURLOPT_FAILONERROR`: Defina esta opção para um valor diferente de zero se você quiser que o PHP falhe silenciosamente se o código HTTP retornado for maior do que 300. O funcionamento normal é retornar a página normalmente, ignorando o código.

- `CURLOPT_UPLOAD`: Defina esta opção para um valor diferente de zero se você quiser que o PHP se prepare para um upload.

- `CURLOPT_POST`: Defina esta opção para um valor diferente de zero se você quiser faça um HTTP POST regular. Este POST é do tipo normal `application/x-www-form-urlencoded` kind, normalmente usado por formulários HTML.

- `CURLOPT_FTPLISTONLY`: Defina esta opção para um valor diferente de zero se você quiser que o PHP liste os nomes em um diretório FTP.

- `CURLOPT_FTPAPPEND`: Defina esta opção para um valor diferente de zero e o PHP irá adicionar ao arquivo remoto ao invés de sobrescreve-lo.

- `CURLOPT_NETRC`: Defina esta opção para um valor diferente de zero e o PHP irá procurar no seu arquivo `~./netrc` para encontrar o seu nome de usuário e senha para o local remoto para o qual você esta estabelecendo uma conexão.

- `CURLOPT_FOLLOWLOCATION`: Defina esta opçãp para um valor diferente de zero para seguir qualquer cabeçalho "Location: " que o servidor envie como parte do cabeçalho HTTP ( note que isto é recursivo, o PHP irá seguir tantos cabeçalhos "Location: " quantos sejam enviados.)

- `CURLOPT_PUT`: Defina esta opção para um valor diferente de zero para HTTP PUT um arquivo. O arquivo para PUT deve ser definido com `CURLOPT_INFILE` e `CURLOPT_INFILESIZE`.

- `CURLOPT_MUTE`: Defina esta opção para um valor diferente de zero e o PHP será completamente silencioso rem relação as funções CURL.

- `CURLOPT_TIMEOUT`: Passe um número long como parâmetro que contém o limite de tempo, em segundos, que você permite as funções CURL levar.

- `CURLOPT_LOW_SPEED_LIMIT`: Passe um número long como parâmetro que contem a velocidade de transferencia em bytes por segundo a qual a transferencia deva estar abaixo durante `CURLOPT_LOW_SPEED_TIME` segundos para o PHP considerar muito lento e abortar.

- `CURLOPT_LOW_SPEED_TIME`: Passe um número long como parâmetro que contém o tempo em segundos que a transferencia deve estar abaixo de `CURLOPT_LOW_SPEED_LIMIT` para o PHP considerar muito lenta e abortar.

- `CURLOPT_RESUME_FROM`: Passe um número longo como parâmetro que contém o índice em bytes, a partir do qual você quer que a transferencia comece.

- `CURLOPT_CAINFO`: Passe um nome de arquivo de um arquivo contendo um ou mais certificados para verificar o peer. Isto somente faz sentido quando usado em combinação com a opção `CURLOPT_SSL_VERIFYPEER`.

- `CURLOPT_SSL_VERIFYPEER`: Passe um número long que é zero para parar o CURL de verificar o certificado do peer (curl 7.10 começõu a definir esta opção para `TRUE` por padrão). Certificados alternativos para serem verificados podem ser especificados com a opção `CURLOPT_CAINFO` (adicionada no curl 7.9.8) ou um diretório com certificado pode ser especificado com a opção `CURLOPT_CAPATH`. A partir do curl 7.10, curl instala um padrão. `CURLOPT_SSL_VERIFYHOST` deve também ser definido para 1 ou 0 se `CURLOPT_SSL_VERIFYPEER` estiver desabilitado (o padrão é 2).

- `CURLOPT_SSLVERSION`: Passe um long como parâmetro que contém a versão SSL (2 ou 3) a ser usada. Por padrão o PHP tentará determinar isto por sí mesmo, entretanto, em alguns casos você terá que definir isto manualmente.

- `CURLOPT_SSL_VERIFYHOST`: Passe um long se o CURL deve verificar o nome comum do certificado do peer ao estabelacer a conexão SSL. Um valor 1 indica que deve conferir a existencia do nome comum, um valor 2 indica que deve ter certeza que é o mesmo no servidor indicado.

- `CURLOPT_TIMECONDITION`: Passe um long como parâmetro para definir como `CURLOPT_TIMEVALUE` será tratado. Você pode definir este parâmetro para TIMECOND_IFMODSINCE ou TIMECOND_ISUNMODSINCE. Isto funciona apenas com HTTP.

- `CURLOPT_TIMEVALUE`: Passe um long como parâmetro que é o tempo desde 1º de Janeiro de 1970. O tempo será usado como especificado na opção `CURLOPT_TIMECONDITION`, ou por padrão será usado o TIMECOND_IFMODSINCE.

- `CURLOPT_RETURNTRANSFER`: Passe um valor diferente de zero se você quer que o CURL retorne diretamente a transferencia ao invés de mostra-la diretamente.

O parâmetro `value` deve ser uma string para os seguintes valores do parâmetro `option`:

- `CURLOPT_URL`: Esta é a URL que você quer que o PHP obtenha. Você pode definir esta opção também quando estiver inicializando a sessão com a função curl_init().

- `CURLOPT_USERPWD`: Passe uma string formatada da maneira [usuário]:[senha], Para o PHP usar para a conexão.

- `CURLOPT_PROXYUSERPWD`: Passe uma string formatada da maneira [usuário]:[senha] para a conexão com o proxy HTTP.

- `CURLOPT_RANGE`: Passe o intervalo especificado que você quer. Deve estar no formato "X-Y", aonde X ou Y podem ser deixados. Transferencia HTTP também suportam vários intervalos, separados com vírgulas como em X-Y,N-M.

- `CURLOPT_POSTFIELDS`: Passe uma string contendo os dados completos para passar em um operação HTTP "POST".

- `CURLOPT_REFERER`: Passe uma string contendo um cabeçalho "referer" para ser usado na requisição HTTP.

- `CURLOPT_USERAGENT`: Passe uma string contendo o cabeçalho "user-agent" para ser usado na requisição HTTP.

- `CURLOPT_FTPPORT`: Passe uma string contendo o valor que será usado para obter o endereço IP para usar para a instrução ftp "POST". A instrução POST diz para o servidor remoto conectar com o nosso endereço IP especificado. A string pode ser um endereço IP por extenso, um nome de servidor, um nome de interface de rede (sob o Unix), ou apenas um "-" para usar o endereço IP padrão do sistema.

- `CURLOPT_COOKIE`: Passe uma string com o conteúdo do cookie para ser enviado no cabeçalho HTTP.

- `CURLOPT_SSLCERT`: Passe uma string contendo o nome do arquivo do PEM formatted certificate.

- `CURLOPT_SSLCERTPASSWD`: Passe uma string contendo a senha necessária para usar com o certificado `CURLOPT_SSLCERT`.

- `CURLOPT_COOKIEFILE`: Passe uma string o nome do arquivo que contém os dados do cookie. O arquivo de cookie pode ser no formato do Netscape ou apenas cabeçalhos no estilo HTTP escritos em um arquivo.

- `CURLOPT_CUSTOMREQUEST`: Passe um string para ser usada ao invés de `GET` ou `HEAD` quando estiver fazendo uma requisição HTTP. isto é util para fazer `DELETE` ou outra, mais obscura, solicitação HTTP. Valores válidos são coisas como `GET`, `POST`, e assim por diante; ex. não entre com a requisão HTTP completa. Por exemplo, entrando com 'GET /index.html HTTP/1.0\r\n\r\n' estará incorreto.

  > Nota: Não faça isso sem ter certeza que o seu servidor suporta o comando primeiro.

- `CURLOPT_PROXY`: Dê o nome do proxy HTTP para usar de tunel para as requisições atravessarem.

- `CURLOPT_INTERFACE`: Passe o nome da interface de rede de saída para usar. Isso pode ser um nome de interface, um endereço IP ou um nome de servidor.

- `CURLOPT_KRB4LEVEL`: Passe o KRB4 (Kerberos 4) nível de segurança. Qualquer um dos seguintes valores (em ordem do menos para o mais poderoso) são válidos: 'clear', 'safe', 'confidential', 'private'. Se a string não for nenhum destes, então será usado o 'private'. Definir esta opção como `NULL`, irá desabilitar a segurança KRB4. Atualmente a segurança KRB4 funciona apenas com transações FTP.

- `CURLOPT_HTTPHEADER`: Passe uma matriz de cabeçalhos HTTP para definir.

- `CURLOPT_QUOTE`: Passe uma matriz de comandos FTP para executar no servidor FTP antes da requisição FTP.

- `CURLOPT_POSTQUOTE`: Passe uma matriz de comandos FTP, para executar no servidor, após a requisição FTP ter sido executada.

As seguintes funções esperam um descritor de arquivo que é obtido usando a função fopen():

- `CURLOPT_FILE`: O arquivo onde colocar a saída da sua transferencia, o padrão é STDOUT.

- `CURLOPT_INFILE`: O arquivo da onde vem a sua transferencia.

- `CURLOPT_WRITEHEADER`: O arquivo para onde escrever a parte do cabeçalho da saída.

- `CURLOPT_STDERR`: O arquivo para onde escrever os erro ao invés de stderr.

Exemplo 1. Começando uma sessão CURL e obtendo uma página
`<?php // create a new curl resource $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_HEADER, 0); // grab URL and pass it to the browser curl_exec($ch); // close curl resource, and free up system resources curl_close($ch); ?>`

Anterior | Principal | Próxima
curl_setopt_array | Acima | curl_version