(PHP 4 >= 4.0.2, PHP 5)
curl_setopt — Define uma opção para a transferencia cURL
Define uma opção para o manipulador de sessão cURL indicado.
Um manipulador cURL retornado por curl_init().
A CURLOPT_XXX opção a definir.
O valor a ser definido em option.
value deve ser um booleano para os seguintes valores do parâmetro option:
Opção | Definir value para | Notas |
---|---|---|
CURLOPT_AUTOREFERER | TRUE para definir automaticamente um campo Referer: nas requisições aonde ele segue um redirecionamento Location:. | Disponível desde PHP 5.1.0. |
CURLOPT_BINARYTRANSFER | TRUE para retornar a saída crua quando CURLOPT_RETURNTRANSFER é usado. | |
CURLOPT_COOKIESESSION | TRUE para marcar este como um novo cookie de sessão. Ela irá forçar a libcurl a ignorar todos os cookies que esteja a ponto de carregar que sejam "cookies de sessão" da sessão anterior. Por padrão, libcurl sempre salva e carrega todos os cookies, independente se sejam cookies de sessão ou não. Cookies de sessão são cookies sem data de expiração o que significa que devem estar vivos e existir apenas para essa sesão apenas. | Disponível desde PHP 5.1.0. |
CURLOPT_CRLF | TRUE para converter finais de linha Unix para finais de linha CRLF nas transferencias. | |
CURLOPT_DNS_USE_GLOBAL_CACHE | TRUE para usar um cache de DNS global. Esta opção não é thread-safe e esta ativada por padrão. | |
CURLOPT_FAILONERROR | TRUE para falhar silenciosamente se o codigo HTTP retornado for maior ou igual a 400. O funcionamento padrão é retornar a pagina normalmente, ignorando o codigo. | |
CURLOPT_FILETIME | TRUE para tentar obter a data de modificação do documento remoto. Este valor pode ser obtido usando a opção CURLINFO_FILETIME com curl_getinfo(). | |
CURLOPT_FOLLOWLOCATION | TRUE para seguir qualquer cabeçalho "Location: " que o servidor envie como parte do cabeçalho HTTP (note que isto é recursivo, PHP irá seguir tantos cabeçalhos "Location: " quantos sejam enviados, a menos que CURLOPT_MAXREDIRS seja definido). | |
CURLOPT_FORBID_REUSE | TRUE para forçar a conexão ser fechada explicitamente quando o processamento seja terminado, e não ser guardada para reuso. | |
CURLOPT_FRESH_CONNECT | TRUE para forçar o uso de uma nova conexão ao invés de uma guardada em cache. | |
CURLOPT_FTP_USE_EPRT | TRUE para usar EPRT (e LPRT) ao fazer downloads FTP ativos. Use FALSE para desabilitar EPRT e LPRT e usar apenas PORT. | Adicionado no PHP 5.0.0. |
CURLOPT_FTP_USE_EPSV | TRUE para tentar primeiro um comando EPSV pára transferencias FTP antes de reverter de volta para PASV. Defina como FALSE para desabilitar EPSV. | |
CURLOPT_FTPAPPEND | TRUE para adicionar ao arquivo remoto ao invés de sobrescreve-lo. | |
CURLOPT_FTPASCII | um apelido para CURLOPT_TRANSFERTEXT. Use aquela ao invés. | |
CURLOPT_FTPLISTONLY | TRUE para listar apenas os nomes de um diretório FTP. | |
CURLOPT_HEADER | TRUE para incluir o cabeçalho na saída. | |
CURLOPT_HTTPGET | TRUE para redefinir o metodo de solicitação HTTP para GET. já que GET é o padrão, isto apenas é necessário se o metodo de solicitação foi modificado. | |
CURLOPT_HTTPPROXYTUNNEL | TRUE para fazer tunel através de um servidor HTTP proxy indicado. | |
CURLOPT_MUTE | TRUE para ser compeltamente silencioso no que diz respeito as funções cURL. | |
CURLOPT_NETRC | TRUE para procurar no arquivo ~/.netrc um nome de usuário e senha para o local a qual a conexão remota esta sendo estabelecida. | |
CURLOPT_NOBODY | TRUE para excluir o corpo da saída. O metodo da solicitação é então definido como HEAD. Mudar isto para FALSE não muda-o para o GET. | |
CURLOPT_NOPROGRESS | TRUE para desabilitar o medidor de progresso para as transferencias cURL.
|
|
CURLOPT_NOSIGNAL | TRUE para ignorar qualquer função cURL que faça com que um sinal seja enviado para o processo PHP. Isto é ativado por padrão em servidores multi-tarefa assim opções de limite de tempo ainda podem ser usadas. | Adicionado no cURL 7.10 e PHP 5.0.0. |
CURLOPT_POST | TRUE para fazer um HTTP POST normal. Este POST é do tipo normal application/x-www-form-urlencoded, mais comunmente usado pelos formulários HTML. | |
CURLOPT_PUT | TRUE para enviar um arquivo usando HTTP PUT. O arquivo a enviar deve estar definido com CURLOPT_INFILE e CURLOPT_INFILESIZE. | |
CURLOPT_RETURNTRANSFER | TRUE para retornar a transferencia como uma string de valor de retorno de curl_exec() ao invés de enviar diretamente para a saída. | |
CURLOPT_SSL_VERIFYPEER | FALSE para fazer o cURL parar de verificar o certificado do cliente. Certificados alternativos para verificar podem ser definidos com a opção CURLOPT_CAINFO ou um diretório de certificados pode ser definido com a opção CURLOPT_CAPATH. CURLOPT_SSL_VERIFYHOST também precisa ser definido como TRUE ou FALSE se CURLOPT_SSL_VERIFYPEER esta desabilitado (o padrão é 2). | TRUE por padrão a partir do cURL 7.10. Instalado por padrão a partir do cURL 7.10. |
CURLOPT_TRANSFERTEXT | TRUE para usar o modo ASCII para transferencias FTP. Para LDAP, ele obtem os datos em texto simples ao invés de HTML. Em Sistemas Windows, ele não irá definir STDOUT para o modo binário. | |
CURLOPT_UNRESTRICTED_AUTH | TRUE para continuar enviando o nome de usuário e senha ao seguir localizações (usando CURLOPT_FOLLOWLOCATION), mesmo que o nome do servidor tenha mudado. | Adicionado no PHP 5.0.0. |
CURLOPT_UPLOAD | TRUE para preparar para o envio de um arquivo. | |
CURLOPT_VERBOSE | TRUE para enviar muita informação para a saída. Escreve a saída para STDERR, ou para o arquivo especificado usando CURLOPT_STDERR. |
value deve ser um inteiro para os seguintes valores do parâmetro option:
Opção | Definir value como | Notas |
---|---|---|
CURLOPT_BUFFERSIZE | O tamanho do buffer a usar em cada lida. Não há garantia de que este pedido será cumprido, entretando. | Adicionado no cURL 7.10 e PHP 5.0.0. |
CURLOPT_CLOSEPOLICY | Ou CURLCLOSEPOLICY_LEAST_RECENTLY_USED ou CURLCLOSEPOLICY_OLDEST. Existem ainda três outras constantes CURLCLOSEPOLICY_, mas cURL ainda não as suporta. | |
CURLOPT_CONNECTTIMEOUT | O número de segundos para esperar ao tentar se conectar. Use 0 para esperar infinitamente. | |
CURLOPT_DNS_CACHE_TIMEOUT | O número de segundos para manter entradas DNS na memória. Esta opção é definida para 120 (2 minutos) por padrão. | |
CURLOPT_FTPSSLAUTH | O método de autenticação FTP (quando é ativado): CURLFTPAUTH_SSL (tentar SSL primeiro), CURLFTPAUTH_TLS (tentar TLS primeiro), ou CURLFTPAUTH_DEFAULT (deixar cURL decidir). | Adicionado no cURL 7.12.2 e PHP 5.1.0. |
CURLOPT_HTTP_VERSION | CURL_HTTP_VERSION_NONE (padrão, deixa o CURL decidir qual versão usar), CURL_HTTP_VERSION_1_0 (força HTTP/1.0), ou CURL_HTTP_VERSION_1_1 (força HTTP/1.1). | |
CURLOPT_HTTPAUTH |
O metodo de autenticação HTTP a usar. As opções são: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY, e CURLAUTH_ANYSAFE. O operador de bits | (ou) pode ser usado para combinar mais de um metodo. Se isso for feito, o cURL irá conversar com o servidor e ver quais métodos ele suporta e escolher o melhor. CURLAUTH_ANY é um apelido para CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM. CURLAUTH_ANYSAFE é um apelido para CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM. |
Adicionado no PHP 5.0.0. |
CURLOPT_INFILESIZE | O tamanho experado, em bytes, do arquivo ao enviar um arquivo para um local remoto. | |
CURLOPT_LOW_SPEED_LIMIT | A velocidade de transferencia, em bytes por segundos, a qual a transferência deve estar abaixo durante de CURLOPT_LOW_SPEED_TIME segundos para o PHP considerar a transferência muito lenta e abortar. | |
CURLOPT_LOW_SPEED_TIME | O número de segundos que a transferência deve estar abaixo de CURLOPT_LOW_SPEED_LIMIT para o PHP considerar a transferência lenta de mais e abortar. | |
CURLOPT_MAXCONNECTS | O número máximo de conexões persistentes que são permitidas. Quando o limite é atingido, CURLOPT_CLOSEPOLICY é usado para determinar qual conexão deve ser fechada. | |
CURLOPT_MAXREDIRS | O número máximo de redirecionamentos HTTP a seguir. Use esta opção em conjunto com CURLOPT_FOLLOWLOCATION. | |
CURLOPT_PORT | Um número alternativo de porta para conectar. | |
CURLOPT_PROXYAUTH | Os métodos HTTP de autenticação usados para conectar ao servidor proxy. Use as mesmas mascaras de bits descritas em CURLOPT_HTTPAUTH. Para autenticação com o proxy, apenas CURLAUTH_BASIC e CURLAUTH_NTLM são suportados atualmente. | Adicionado em cURL 7.10.7 e PHP 5.1.0. |
CURLOPT_PROXYPORT | O número de porta para conectar ao proxy. Este número de porta também pode ser definido em CURLOPT_PROXY. | Adicionado no PHP 5.0.0. |
CURLOPT_PROXYTYPE | Ou CURLPROXY_HTTP (padrão) ou CURLPROXY_SOCKS5. | Adicionado no cURL 7.10 e PHP 5.0.0. |
CURLOPT_RESUME_FROM | O índice, em bytes, a partir do qual continuar a transferencia. | |
CURLOPT_SSL_VERIFYHOST | 1 para conferir a existencia do nome comum no certificado SSL do cliente. 2 para conferir a existencia de um nome comum e também conferir se combina com o nome de servidor dado. | |
CURLOPT_SSLVERSION | A versão SSL (2 ou 3) a ser usada. por padrão o PHP tentará determinar isso por sí mesmo, entretando em alguns casos deve ser definido manualmente. | |
CURLOPT_TIMECONDITION | Como CURLOPT_TIMEVALUE é tratado. Use CURL_TIMECOND_IFMODSINCE para retornar apagina apenas se foi modificada desde o tempo especificado em CURLOPT_TIMEVALUE. Se não foi modificada um cabeçalho "304 Not Modified" assumindo que CURLOPT_HEADER seja TRUE. Use CURL_TIMECOND_IFUNMODSINCE para o efeito reverso. CURL_TIMECOND_IFMODSINCE é o padrão. | Adicionado no PHP 5.1.0. |
CURLOPT_TIMEOUT | O número máximo de segundos que uma função cURL pode executar. | |
CURLOPT_TIMEVALUE | O tempo em segundos desde 1º de Janeiro de 1970. O tempo será usado por CURLOPT_TIMECONDITION. Por padrão, CURL_TIMECOND_IFMODSINCE é usado. |
value deve ser uma string para os seguintes valores do parâmetro option:
Opção | Definir o value para | Notas |
---|---|---|
CURLOPT_CAINFO | O nome do arquivo contendo um ou mais certidicados para verificar o peer. Esta opção apenas tem sentido em conjunto com CURLOPT_SSL_VERIFYPEER. | |
CURLOPT_CAPATH | Um diretório que contem vários certificados CA. Use este opção em conjunto com CURLOPT_SSL_VERIFYPEER. | |
CURLOPT_COOKIE | O conteúdo do cabeçalho "Set-Cookie: " a ser utilizado na requisição HTTP. | |
CURLOPT_COOKIEFILE | O nome do arquivo contendo os dados de cookie. O arquivo de cookie pode estar no formato Netscape, ou apenas no estilo de cabeçalhos HTTP salvos em um arquivo. | |
CURLOPT_COOKIEJAR | O nome do arquivo para salvar todos os cookies internos quando a conexão fechar. | |
CURLOPT_CUSTOMREQUEST | Um método de solicitação personalizado para usar ao invés de "GET" ou "HEAD" ao fazer uma solicitação HTTP. Isto é útil para fazer "DELETE" ou outras solicitações HTTP mais obscuras. Valores válidos são coisas como "GET", "POST", "CONNECT" e assim por diante; i.e. Do not enter a whole HTTP request line here. For instance, entrar "GET /index.html HTTP/1.0\r\n\r\n" estaria errado.
|
|
CURLOPT_EGDSOCKET | Como CURLOPT_RANDOM_FILE, exceto um nome de arquivo para um Entropy Gathering Daemon socket. | |
CURLOPT_ENCODING | O conteúdo do cabeçalho "Accept-Encoding: ". Isto ativa a decodificação da resposta. codificações suportadas são "identity", "deflate", e "gzip". Se for definida uma string vazia, "", um cabeçalho contendo todos os tipos de codificações suportados é enviado. | Adicionado no cURL 7.10. |
CURLOPT_FTPPORT | O valor o qual vai ser usado para ter o endereço IP para usar com a instrução FTP "POST". A instrução "POST" diz ao servidor remoto conectar com o seu endereço IP especificado. A string deve ser um endereço IP simples, um nome de servidor, um nome de interface de rede (sob o Unix), ou apenas um simples "-" para usar o endereço IP padrão do sistema. | |
CURLOPT_INTERFACE | O nome da interface de rede de saída a usar. Isto pode ser um nome de interface, um endereço IP ou um nome de servidor. | |
CURLOPT_KRB4LEVEL | O nível de segurança KRB4 (Kerberos 4). Qualquer un dos seguintes valores (em ordem do menos ao mais poderoso) são válidos: "clear", "safe", "confidential", "private".. Se a string não combinar com um destes, "private" é usado. Definir esta opção como NULL irá desabilitar a segurança KRB4. Atualmente a segurança KRB4 funciona apenas com transações FTP. | |
CURLOPT_POSTFIELDS | Todos os dados para enviar em uma operação HTTP "POST". Para enviar um arquivo, adicione antes do nome do arquivo um @ e use o caminho completo. Isto pode ser passado como uma string codificada para url como 'para1=val1¶2=val2&...' ou como uma matriz com o nome do campo como índice e o dado do campo como valor. | |
CURLOPT_PROXY | O servidor HTTP proxy pelo qual passar as requisições. | |
CURLOPT_PROXYUSERPWD | Um nome de usuário e senha formatados como "[username]:[password]" para usar na conexão com o proxy. | |
CURLOPT_RANDOM_FILE | Um nome de arquivo para ser usado como semente para o gerador de números aleatórios para SSL. | |
CURLOPT_RANGE | Intervalo(s) de data para obter no formato "X-Y" aonde X ou Y é opcional. Transferencias HTTP também suportam vários intervalos, separados por vírgulas no formato "X-Y,N-M". | |
CURLOPT_REFERER | O conteúdo do cabeçalho "Referer: " a ser usado em uma solicitação HTTP. | |
CURLOPT_SSL_CIPHER_LIST | Uma lista de ciphers para usar com SSL. Por exemplo, RC4-SHA e TLSv1 são listas cipher validas. | |
CURLOPT_SSLCERT | O nome de um arquivo contendo um certificado formatado PEM. | |
CURLOPT_SSLCERTPASSWD | A senha necessária para usar o certificado CURLOPT_SSLCERT. | |
CURLOPT_SSLCERTTYPE | O formato do certificado. Formatos suportados são "PEM" (default), "DER", e "ENG". | Adicionado no cURL 7.9.3 e PHP 5.0.0. |
CURLOPT_SSLENGINE | O identificador para o motor de criptografia da chave SSL privada especificada em CURLOPT_SSLKEY. | |
CURLOPT_SSLENGINE_DEFAULT | O identificador para o motor de criptografia usado para para operações assimétricas. | |
CURLOPT_SSLKEY | O nome de um arquivo contendo uma chave SSL privada. | |
CURLOPT_SSLKEYPASSWD | A senha secreta necessária para usar a chave privada SSL especificada em CURLOPT_SSLKEY.
|
|
CURLOPT_SSLKEYTYPE | O tipo de chave para a chave SSL privada especificada em CURLOPT_SSLKEY. Tipos de chaves suportados são "PEM" (default), "DER", and "ENG". | |
CURLOPT_URL | A URL para obter. isto também pode ser definido ao inicializar a sessão com curl_init(). | |
CURLOPT_USERAGENT | O conteúdo do cabeçalho "User-Agent: " a ser usado na solicitação HTTP. | |
CURLOPT_USERPWD | Um nome de usuário e senha formatado como "[username]:[password]" para usar para a conexão. |
value deve ser uma matriz para os seguintes valores do parâmetro option:
Opção | Definir value como | Notas |
---|---|---|
CURLOPT_HTTP200ALIASES | Um array de respostas HTTP 200 que serão tratadas como respostas válidas e não como erros. | Adicionado no cURL 7.10.3 e PHP 5.0.0. |
CURLOPT_HTTPHEADER | Um array de cabeçalhos HTTP a definir. | |
CURLOPT_POSTQUOTE | Um array de comandos FTP a executar no servidor depois de a requisição FTP ter sido realizada. | |
CURLOPT_QUOTE | Um array de comandos FTP a serem executados no servidor antes da requesição. |
value deve ser um recurso stream (usando fopen(), por exemplo) para os seguintes valores do parâmetro option:
Opção | Define value como | Notas |
---|---|---|
CURLOPT_FILE | O arquivo na qual a transferencia deve ser escrita. O padrão é STDOUT (a janela do browser). | |
CURLOPT_INFILE | O arquivo que deve ser lido ao se fazer um upload. | |
CURLOPT_STDERR | Um local alternativo para se escrever os erros ao invés de STDERR. | |
CURLOPT_WRITEHEADER | O arquivo em que a parte do cabeçalho da transferencia é escrita. |
value dese ser uma string que seja o nome de uma função de callback válida para os seguintes valores do parãmetro option:
Opção | Define value como | Notas |
---|---|---|
CURLOPT_HEADERFUNCTION | O nome da função de callback aonde a função de callback tem dois parâmetros. O primeiro é o recurso cURL, o segundo é uma string com os ados a serem escritos. Os dados do cabeçalho devem ser escritos usando esta função de callback. Retorna o número de bytes escritos. | |
CURLOPT_PASSWDFUNCTION | O nome da função de callback aonde a função de callback tem três parâmetros. O primeiro é o recurso cURL, o segundo é uma string contendo uma string para o pronpt da senha, e o terceiro é o limite de tamanho da senha. Retorna a string contendo a senha. | |
CURLOPT_READFUNCTION | O nome da função de callback aonde a função de callback tem dois parâmetros. O primeiro é o recurso cURL, e so segundo é uma string com os dados a serem lidos. Os dados devem ser lidos atráves dessa função de callback. Retorna o número de bytes lidos. Retorne 0 para indicar EOF (final do arquivo). | |
CURLOPT_WRITEFUNCTION | O nome da função de callback aonde a função de callback tem dois parâmetros. O primeiro é o recurso resource, e o segundo é a string com os dados a serem escritos. Os dados devem ser escritos usando essa função de callback. Deve retornar o número exato de bytes escritos ou isto irá falhar. |
Retorna TRUE em caso de sucesso ou FALSE em falhas.
Exemplo #1 inicializando uma nova sessão cURL e obtendo uma pagina da internet
<?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, false);
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
?>
Exemplo #2 Enviando um arquivo
<?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);
?>
O exemplo acima irá imprimir:
Array ( [name] => Foo ) Array ( [file] => Array ( [name] => test.png [type] => image/png [tmp_name] => /tmp/phpcpjNeQ [error] => 0 [size] => 279 ) )