<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >curl_setopt</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="CURL, Biblioteca de Cliente de URL" HREF="ref.curl.html"><LINK REL="PREVIOUS" TITLE="curl_setopt_array" HREF="function.curl-setopt-array.html"><LINK REL="NEXT" TITLE="curl_version" HREF="function.curl-version.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.curl-setopt-array.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.curl-version.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.curl-setopt" ></A >curl_setopt</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN24521" ></A ><P > (PHP 4 >= 4.0.2, PHP 5)</P >curl_setopt -- Define uma opção para a transferencia CURL</DIV ><DIV CLASS="refsect1" ><A NAME="AEN24524" ></A ><H2 >Descrição</H2 >bool <B CLASS="methodname" >curl_setopt</B > ( resource ch, string option, mixed value )<BR ></BR ><P > A função <B CLASS="function" >curl_setopt()</B > irá definir opções para uma sessão CURL identificada pelo parâmetro <CODE CLASS="parameter" >ch</CODE >. O parâmetro <CODE CLASS="parameter" >option</CODE > é a opção que você quer definir, e o <CODE CLASS="parameter" >value</CODE > é o valor da opção dada por <CODE CLASS="parameter" >option</CODE >. </P ><P > O <CODE CLASS="parameter" >value</CODE > deve ser um longo para as seguintes opções ( especificado no parâmetro (specified in the <CODE CLASS="parameter" >option</CODE >): <P ></P ><UL ><LI ><P > <CODE CLASS="parameter" >CURLOPT_INFILESIZE</CODE >: 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. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_VERBOSE</CODE >: Defina esta opção para um valor diferente de zero se você quer que o CURL reporte tudo o que esteja acontecendo. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_HEADER</CODE >: Defina esta opção para um valor diferente de zero se você quer que o cabeçalho seja incluído na saída. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_NOPROGRESS</CODE >: 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. <DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > O PHP automaticamente define esta opção para um valor diferente de zero, isto deve ser mudado apenas para o propósito de debug. </P ></BLOCKQUOTE ></DIV > </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_NOBODY</CODE >: Defina esta opção para um valor diferente de zero se você não quiser que o corpo seja incluído na saída. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_FAILONERROR</CODE >: 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. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_UPLOAD</CODE >: Defina esta opção para um valor diferente de zero se você quiser que o PHP se prepare para um upload. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_POST</CODE >: Defina esta opção para um valor diferente de zero se você quiser faça um HTTP POST regular. Este POST é do tipo normal <TT CLASS="literal" >application/x-www-form-urlencoded</TT > kind, normalmente usado por formulários HTML. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_FTPLISTONLY</CODE >: Defina esta opção para um valor diferente de zero se você quiser que o PHP liste os nomes em um diretório FTP. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_FTPAPPEND</CODE >: Defina esta opção para um valor diferente de zero e o PHP irá adicionar ao arquivo remoto ao invés de sobrescreve-lo. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_NETRC</CODE >: Defina esta opção para um valor diferente de zero e o PHP irá procurar no seu arquivo <TT CLASS="filename" >~./netrc</TT > para encontrar o seu nome de usuário e senha para o local remoto para o qual você esta estabelecendo uma conexão. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_FOLLOWLOCATION</CODE >: 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.) </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_PUT</CODE >: Defina esta opção para um valor diferente de zero para HTTP PUT um arquivo. O arquivo para PUT deve ser definido com <CODE CLASS="parameter" >CURLOPT_INFILE</CODE > e <CODE CLASS="parameter" >CURLOPT_INFILESIZE</CODE >. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_MUTE</CODE >: Defina esta opção para um valor diferente de zero e o PHP será completamente silencioso rem relação as funções CURL. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_TIMEOUT</CODE >: 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. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_LOW_SPEED_LIMIT</CODE >: 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 <CODE CLASS="parameter" >CURLOPT_LOW_SPEED_TIME</CODE > segundos para o PHP considerar muito lento e abortar. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_LOW_SPEED_TIME</CODE >: Passe um número long como parâmetro que contém o tempo em segundos que a transferencia deve estar abaixo de <CODE CLASS="parameter" >CURLOPT_LOW_SPEED_LIMIT</CODE > para o PHP considerar muito lenta e abortar. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_RESUME_FROM</CODE >: 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. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_CAINFO</CODE >: 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 <CODE CLASS="parameter" >CURLOPT_SSL_VERIFYPEER</CODE >. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_SSL_VERIFYPEER</CODE >: 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 <TT CLASS="constant" ><B >TRUE</B ></TT > por padrão). Certificados alternativos para serem verificados podem ser especificados com a opção <CODE CLASS="parameter" >CURLOPT_CAINFO</CODE > (adicionada no curl 7.9.8) ou um diretório com certificado pode ser especificado com a opção <CODE CLASS="parameter" > CURLOPT_CAPATH</CODE >. A partir do curl 7.10, curl instala um padrão. <CODE CLASS="parameter" >CURLOPT_SSL_VERIFYHOST</CODE > deve também ser definido para 1 ou 0 se <CODE CLASS="parameter" >CURLOPT_SSL_VERIFYPEER </CODE > estiver desabilitado (o padrão é 2). </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_SSLVERSION</CODE >: 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. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_SSL_VERIFYHOST</CODE >: 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. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_TIMECONDITION</CODE >: Passe um long como parâmetro para definir como <CODE CLASS="parameter" >CURLOPT_TIMEVALUE</CODE > será tratado. Você pode definir este parâmetro para TIMECOND_IFMODSINCE ou TIMECOND_ISUNMODSINCE. Isto funciona apenas com HTTP. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_TIMEVALUE</CODE >: Passe um long como parâmetro que é o tempo desde 1º de Janeiro de 1970. O tempo será usado como especificado na opção <CODE CLASS="parameter" >CURLOPT_TIMECONDITION</CODE >, ou por padrão será usado o TIMECOND_IFMODSINCE. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_RETURNTRANSFER</CODE >: Passe um valor diferente de zero se você quer que o CURL retorne diretamente a transferencia ao invés de mostra-la diretamente. </P ></LI ></UL > </P ><P > O parâmetro <CODE CLASS="parameter" >value</CODE > deve ser uma string para os seguintes valores do parâmetro <CODE CLASS="parameter" >option</CODE >: <P ></P ><UL ><LI ><P > <CODE CLASS="parameter" >CURLOPT_URL</CODE >: 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 <A HREF="function.curl-init.html" ><B CLASS="function" >curl_init()</B ></A >. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_USERPWD</CODE >: Passe uma string formatada da maneira [usuário]:[senha], Para o PHP usar para a conexão. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_PROXYUSERPWD</CODE >: Passe uma string formatada da maneira [usuário]:[senha] para a conexão com o proxy HTTP. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_RANGE</CODE >: 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. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_POSTFIELDS</CODE >: Passe uma string contendo os dados completos para passar em um operação HTTP "POST". </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_REFERER</CODE >: Passe uma string contendo um cabeçalho "referer" para ser usado na requisição HTTP. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_USERAGENT</CODE >: Passe uma string contendo o cabeçalho "user-agent" para ser usado na requisição HTTP. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_FTPPORT</CODE >: 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. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_COOKIE</CODE >: Passe uma string com o conteúdo do cookie para ser enviado no cabeçalho HTTP. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_SSLCERT</CODE >: Passe uma string contendo o nome do arquivo do PEM formatted certificate. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_SSLCERTPASSWD</CODE >: Passe uma string contendo a senha necessária para usar com o certificado <CODE CLASS="parameter" >CURLOPT_SSLCERT</CODE >. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_COOKIEFILE</CODE >: 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. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_CUSTOMREQUEST</CODE >: Passe um string para ser usada ao invés de <TT CLASS="literal" >GET</TT > ou <TT CLASS="literal" >HEAD</TT > quando estiver fazendo uma requisição HTTP. isto é util para fazer <TT CLASS="literal" >DELETE</TT > ou outra, mais obscura, solicitação HTTP. Valores válidos são coisas como <TT CLASS="literal" >GET</TT >, <TT CLASS="literal" >POST</TT >, 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. <DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Não faça isso sem ter certeza que o seu servidor suporta o comando primeiro. </P ></BLOCKQUOTE ></DIV > </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_PROXY</CODE >: Dê o nome do proxy HTTP para usar de tunel para as requisições atravessarem. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_INTERFACE</CODE >: 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. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_KRB4LEVEL</CODE >: 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 <TT CLASS="literal" >NULL</TT >, irá desabilitar a segurança KRB4. Atualmente a segurança KRB4 funciona apenas com transações FTP. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_HTTPHEADER</CODE >: Passe uma matriz de cabeçalhos HTTP para definir. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_QUOTE</CODE >: Passe uma matriz de comandos FTP para executar no servidor FTP antes da requisição FTP. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_POSTQUOTE</CODE >: Passe uma matriz de comandos FTP, para executar no servidor, após a requisição FTP ter sido executada. </P ></LI ></UL > </P ><P > As seguintes funções esperam um descritor de arquivo que é obtido usando a função <A HREF="function.fopen.html" ><B CLASS="function" >fopen()</B ></A >: <P ></P ><UL ><LI ><P > <CODE CLASS="parameter" >CURLOPT_FILE</CODE >: O arquivo onde colocar a saída da sua transferencia, o padrão é STDOUT. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_INFILE</CODE >: O arquivo da onde vem a sua transferencia. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_WRITEHEADER</CODE >: O arquivo para onde escrever a parte do cabeçalho da saída. </P ></LI ><LI ><P > <CODE CLASS="parameter" >CURLOPT_STDERR</CODE >: O arquivo para onde escrever os erro ao invés de stderr. </P ></LI ></UL > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN24725" ></A ><P ><B >Exemplo 1. Começando uma sessão CURL e obtendo uma página </B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /></font><font color="#FF8000">// create a new curl resource<br /></font><font color="#0000BB">$ch </font><font color="#007700">= </font><font color="#0000BB">curl_init</font><font color="#007700">();<br /><br /></font><font color="#FF8000">// set URL and other appropriate options<br /></font><font color="#0000BB">curl_setopt</font><font color="#007700">(</font><font color="#0000BB">$ch</font><font color="#007700">, </font><font color="#0000BB">CURLOPT_URL</font><font color="#007700">, </font><font color="#DD0000">"http://www.example.com/"</font><font color="#007700">);<br /></font><font color="#0000BB">curl_setopt</font><font color="#007700">(</font><font color="#0000BB">$ch</font><font color="#007700">, </font><font color="#0000BB">CURLOPT_HEADER</font><font color="#007700">, </font><font color="#0000BB">0</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// grab URL and pass it to the browser<br /></font><font color="#0000BB">curl_exec</font><font color="#007700">(</font><font color="#0000BB">$ch</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// close curl resource, and free up system resources<br /></font><font color="#0000BB">curl_close</font><font color="#007700">(</font><font color="#0000BB">$ch</font><font color="#007700">);<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.curl-setopt-array.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.curl-version.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >curl_setopt_array</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.curl.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >curl_version</TD ></TR ></TABLE ></DIV ></BODY ></HTML >