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.