(PHP 4 >= 4.0.2, PHP 5)
curl_setopt — Defina uma opção de transporte cURL.
bool curl_setopt (recurso $ch, int $opção, valor misto $)
Define uma opção para o identificador de sessão cURL fornecido.
cap.
O identificador cURL retornado por curl_init().
opção
As opções CURLOPT_XXX precisam ser definidas.
valor
O valor que será definido na opção.
Para os parâmetros opcionais das opções a seguir, o valor deve ser definido como um valor do tipo bool:
Opções | Valor opcional | Observação |
---|---|---|
CURLOPT_AUTOREFERER | Ao redirecionar com base em Location:, a informação Referer: no cabeçalho é definida automaticamente. | |
CURLOPT_BINARYTRANSFER | Retorna a saída bruta quando CURLOPT_RETURNTRANSFER está habilitado. | |
CURLOPT_COOKIESESSION | Quando ativado, o curl passará apenas um cookie de sessão e ignorará os outros cookies. Por padrão, o curl retornará todos os cookies ao servidor. Cookies de sessão referem-se a cookies usados para determinar se a sessão do servidor é válida. | |
CURLOPT_CRLF | Quando ativado, converte novas linhas Unix em retornos de carro e avanços de linha. | |
CURLOPT_DNS_USE_GLOBAL_CACHE | Quando ativado, um cache DNS global é ativado por padrão. | |
CURLOPT_FAILONERROR | Exibe o código de status HTTP. O comportamento padrão é ignorar mensagens HTTP com números menores ou iguais a 400. | |
CURLOPT_FILETIME | Quando ativado, tenta modificar informações no documento remoto. As informações do resultado serão retornadas através da opção CURLINFO_FILETIME da função curl_getinfo(). curl_getinfo(). | |
CURLOPT_FOLLOWLOCATION | Quando habilitado, o "Location:" retornado pelo servidor será colocado no cabeçalho e retornado ao servidor de forma recursiva. Utilize CURLOPT_MAXREDIRS para limitar o número de retornos recursivos. | |
CURLOPT_FORBID_REUSE | A conexão é forçada a ser desconectada após a conclusão da interação e não pode ser reutilizada. | |
CURLOPT_FRESH_CONNECT | Força a obtenção de uma nova conexão, substituindo aquela que está no cache. | |
CURLOPT_FTP_USE_EPRT | Quando ativado, use o comando EPRT (ou LPRT) durante downloads via FTP. Quando definido como FALSE desativa EPRT e LPRT, use apenas o comando PORT. | |
CURLOPT_FTP_USE_EPSV | Quando ativado, os comandos EPSV são tentados primeiro antes de reverter para o modo PASV durante transferências FTP. Desativa o comando EPSV quando definido como FALSE . | |
CURLOPT_FTPAPPEND | Quando ativado, anexar grava no arquivo em vez de substituí-lo. | |
CURLOPT_FTPASCII | Alias para CURLOPT_TRANSFERTEXT . | |
CURLOPT_FTPLISTONLY | Quando ativado, apenas os nomes dos diretórios FTP são listados. | |
CURLOPT_HEADER | Quando ativado, as informações do arquivo de cabeçalho serão geradas como um fluxo de dados. | |
CURLINFO_HEADER_OUT | String de solicitação para identificadores de rastreamento quando habilitado. | Disponível a partir do PHP 5.1.3. O prefixo CURLINFO_ é intencional. |
CURLOPT_HTTPGET | Quando habilitado, o método HTTP será definido como GET Como GET é o padrão, ele só será usado se for modificado. | |
CURLOPT_HTTPPROXYTUNNEL | Quando ativado, a transmissão é feita por meio de um proxy HTTP. | |
CURLOPT_MUTE | Quando habilitado, todos os parâmetros modificados na função cURL serão restaurados aos seus valores padrão. | |
CURLOPT_NETRC | Após a conexão ser estabelecida, acesse o arquivo ~/.netrc para obter as informações de nome de usuário e senha para conectar-se ao site remoto. | |
CURLOPT_NOBODY | Quando ativado, a parte BODY do HTML não será exibida. | |
CURLOPT_NOPROGRESS | Desative a barra de progresso da transferência curl quando habilitada. A configuração padrão deste item está habilitada.
| |
CURLOPT_NOSIGNAL | Quando habilitado, ignora todos os sinais passados pelo curl para o php. Este item é habilitado por padrão durante a transmissão multithread SAPI. | Adicionado no cURL 7.10. |
CURLOPT_POST | Quando ativado, uma solicitação POST regular do tipo: application/x-www-form-urlencoded será enviada, assim como um envio de formulário. | |
CURLOPT_PUT | Quando ativado para permitir que HTTP envie arquivos, CURLOPT_INFILE e CURLOPT_INFILESIZE devem ser definidos. | |
CURLOPT_RETURNTRANSFER | Retorne as informações obtidas por curl_exec() na forma de um fluxo de arquivo em vez de exibi-las diretamente. | |
CURLOPT_SSL_VERIFYPEER | Quando desabilitado, o cURL encerrará a validação do servidor. Configure o certificado usando a opção CURLOPT_CAINFO Configure o diretório do certificado usando a opção CURLOPT_CAPATH Se CURLOPT_SSL_VERIFYPEER (padrão 2) estiver ativado, CURLOPT_SSL_VERIFYHOST precisará ser definido como TRUE, caso contrário, definido como FALSE . | O padrão é TRUE desde cURL 7.10. A partir do cURL 7.10, a instalação do pacote configurável é padronizada. |
CURLOPT_TRANSFERTEXT | Quando ativado, utiliza o modo ASCII para transferências FTP. Para LDAP, ele recupera informações de texto simples em vez de HTML. Em sistemas Windows, o sistema não configura STDOUT para o modo binário. | |
CURLOPT_UNRESTRICTED_AUTH | Anexe continuamente informações de nome de usuário e senha a vários locais no cabeçalho gerado usando CURLOPT_FOLLOWLOCATION , mesmo que o nome de domínio tenha sido alterado. | |
CURLOPT_UPLOAD | Permitir uploads de arquivos quando ativado. | |
CURLOPT_VERBOSE | Quando habilitado, todas as informações serão reportadas e armazenadas em STDERR ou no CURLOPT_STDERR especificado. |
Para os parâmetros opcionais das opções a seguir, o valor deve ser definido como um valor do tipo inteiro:
Opções | Valor opcional | Observação |
---|---|---|
CURLOPT_BUFFERSIZE | O tamanho do cache é lido nos dados obtidos a cada vez, mas não há garantia de que esse valor será preenchido todas as vezes. | Adicionado no cURL 7.10. |
CURLOPT_CLOSEPOLICY | Seja CURLCLOSEPOLICY_LEAST_RECENTLY_USED ou CURLCLOSEPOLICY_OLDEST, existem três outros CURLCLOSEPOLICYs, mas cURL ainda não oferece suporte a eles. | |
CURLOPT_CONNECTTIMEOUT | O tempo de espera antes de iniciar uma conexão. Se definido como 0, aguardará indefinidamente. | |
CURLOPT_CONNECTTIMEOUT_MS | O tempo de espera por uma tentativa de conexão, em milissegundos. Se definido como 0, espere infinitamente. | Adicionado no cURL 7.16.2. Disponível a partir do PHP 5.2.3. |
CURLOPT_DNS_CACHE_TIMEOUT | Defina o tempo para salvar as informações de DNS na memória, o padrão é 120 segundos. | |
CURLOPT_FTPSSLAUTH | Método de autenticação FTP: CURLFTPAUTH_SSL (tente SSL primeiro), CURLFTPAUTH_TLS (tente TLS primeiro) ou CURLFTPAUTH_DEFAULT (deixe cURL decidir automaticamente). | Adicionado no cURL 7.12.2. |
CURLOPT_HTTP_VERSION | CURL_HTTP_VERSION_NONE (padrão, permite que o curl decida 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_INFILESIZE | Defina o limite de tamanho dos arquivos enviados em bytes. | |
CURLOPT_LOW_SPEED_LIMIT | Quando a velocidade de transmissão for menor que CURLOPT_LOW_SPEED_LIMIT (bytes/s), o PHP usará CURLOPT_LOW_SPEED_TIME para determinar se a transmissão deve ser cancelada porque é muito lenta. | |
CURLOPT_LOW_SPEED_TIME | Quando a velocidade de transmissão for menor que CURLOPT_LOW_SPEED_LIMIT (bytes/s), o PHP usará CURLOPT_LOW_SPEED_TIME para determinar se a transmissão deve ser cancelada porque é muito lenta. | |
CURLOPT_MAXCONNECTS | O número máximo de conexões permitidas, caso seja excedido, CURLOPT_CLOSEPOLICY será usado para determinar quais conexões devem ser interrompidas. | |
CURLOPT_MAXREDIRS | Especifica o número máximo de redirecionamentos HTTP. Esta opção é usada com CURLOPT_FOLLOWLOCATION . | |
CURLOPT_PORT | Usado para especificar a porta de conexão. (opcional) | |
CURLOPT_PROTOCOLS | O campo de bits refere-se a CURLPROTO_* . Se ativado, o valor do campo de bits limita quais protocolos a libcurl pode usar durante as transferências. Isso permitirá que você compile libcurl para suportar muitos protocolos, mas apenas para usar um subconjunto deles que pode ser usado. Por padrão, o libcurl usará todos os protocolos que suporta. Consulte CURLOPT_REDIR_PROTOCOLS .As opções de protocolo disponíveis são: CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_TFTP, CURLPROTO_ALL | Adicionado no cURL 7.19.4. |
CURLOPT_PROTOCOLS | O campo de bits refere-se a CURLPROTO_* . Se ativado, o valor do campo de bits limita quais protocolos a libcurl pode usar durante as transferências. Isso permitirá que você compile libcurl para suportar muitos protocolos, mas apenas para usar um subconjunto deles que pode ser usado. Por padrão, o libcurl usará todos os protocolos que suporta. Consulte CURLOPT_REDIR_PROTOCOLS .As opções de protocolo disponíveis são: CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_TFTP, CURLPROTO_ALL | Adicionado no cURL 7.19.4. |
CURLOPT_PROXYAUTH | Método de verificação para conexões proxy HTTP. Use os sinalizadores de campo de bits em CURLOPT_HTTPAUTH para definir as opções correspondentes. Para autenticação de proxy, apenas CURLAUTH_BASIC e CURLAUTH_NTLM são suportados atualmente. | Adicionado no cURL 7.10.7. |
CURLOPT_PROXYPORT | A porta do servidor proxy. A porta também pode ser definida em CURLOPT_PROXY . | |
CURLOPT_PROXYTYPE | CURLPROXY_HTTP (padrão) ou CURLPROXY_SOCKS5 . | Adicionado no cURL 7.10. |
CURLOPT_REDIR_PROTOCOLS | Valor do campo de bits em CURLPROTO_* . Se habilitado, o valor do campo de bits limitará os protocolos que o encadeamento de transporte pode usar ao seguir um redirecionamento quando CURLOPT_FOLLOWLOCATION estiver habilitado. Isso permitirá que você restrinja o encadeamento de transporte a um subconjunto de protocolos permitidos ao redirecionar. Por padrão, o libcurl permitirá todos os protocolos, exceto FILE e SCP. Isso é um pouco diferente da versão de pré-lançamento 7.19.4, que segue incondicionalmente todos os protocolos suportados. Para constantes de protocolo, consulte CURLOPT_PROTOCOLS . | Adicionado no cURL 7.19.4. |
CURLOPT_RESUME_FROM | Passe um deslocamento de byte ao retomar a transferência (usado para retomar a transferência). | |
CURLOPT_SSL_VERIFYHOST | 1 Verifique se existe um nome comum no certificado SSL do servidor. Nota do tradutor: Common Name (Nome Comum) geralmente significa preencher o nome de domínio (domínio) ou subdomínio (subdomínio) para o qual você vai solicitar um certificado SSL. 2 Verifique se o nome comum existe e corresponde ao nome do host fornecido. | |
CURLOPT_SSLVERSION | Versão SSL a ser usada (2 ou 3). Por padrão, o PHP detectará esse valor por si só, embora em alguns casos possa ser necessário defini-lo manualmente. | |
CURLOPT_TIMECONDITION | Se tiver sido editado após um determinado tempo especificado por CURLOPT_TIMEVALUE , use CURL_TIMECOND_IFMODSINCE para retornar a página. Se não tiver sido modificado e CURLOPT_HEADER for verdadeiro, um cabeçalho "304 Not Modified" será retornado. Se CURLOPT_HEADER for falso, use CURL_TIMECOND_IFUNMODSINCE. , o valor padrão é CURL_TIMECOND_IFUNMODSINCE . | |
CURLOPT_TIMEOUT | Defina o número máximo de segundos que o cURL pode executar. | |
CURLOPT_TIMEOUT_MS | Define o número máximo de milissegundos que o cURL pode executar. | Adicionado no cURL 7.16.2. Disponível a partir do PHP 5.2.3. |
CURLOPT_TIMEVALUE | Defina um carimbo de data/hora usado por CURLOPT_TIMECONDITION . Por padrão, CURL_TIMECOND_IFMODSINCE é usado. |
Para os parâmetros opcionais das opções a seguir, o valor deve ser definido como um valor do tipo string:
Opções | Valor opcional | Observação |
---|---|---|
CURLOPT_CAINFO | O nome de um arquivo que contém um ou mais certificados para verificação pelo servidor. Este parâmetro só tem sentido quando usado com CURLOPT_SSL_VERIFYPEER . . | |
CURLOPT_CAPATH | Um diretório que contém vários certificados de CA. Esta opção é usada com CURLOPT_SSL_VERIFYPEER . | |
CURLOPT_COOKIE | Defina o conteúdo da parte "Cookie:" da solicitação HTTP. Vários cookies são separados por ponto e vírgula seguido de um espaço (por exemplo, " fruta=maçã; cor=vermelho "). | |
CURLOPT_COOKIEFILE | O nome do arquivo que contém os dados do cookie. O formato do arquivo do cookie pode ser o formato Netscape ou apenas informações puras do cabeçalho HTTP podem ser armazenadas no arquivo. | |
CURLOPT_COOKIEJAR | Um arquivo que salva informações de cookies após a conclusão da conexão. | |
CURLOPT_CUSTOMREQUEST | Use uma mensagem de solicitação personalizada em vez de "GET" ou "HEAD" para a solicitação HTTP. Isto é útil para executar "DELETE" ou outras solicitações HTTP mais secretas. Os valores válidos são "GET" , "POST" , "CONNECT" , etc. Ou seja, não insira toda a solicitação HTTP aqui. Por exemplo, inserir "GET /index.html HTTP/1.0rnrn" está incorreto.
| |
CURLOPT_EGDSOCKET | Semelhante a CURLOPT_RANDOM_FILE , exceto por um soquete Entropy Gathering Daemon. | |
CURLOPT_ENCODING | O valor de "Accept-Encoding:" no cabeçalho da solicitação HTTP. As codificações suportadas são "identity" , "deflate" e "gzip" . Se for a string vazia "" , todos os tipos de codificação suportados serão enviados no cabeçalho da solicitação. | Adicionado no cURL 7.10. |
CURLOPT_FTPPORT | Este valor será utilizado para obter o endereço IP necessário para o comando FTP "POST". O comando “POST” informa ao servidor remoto para se conectar ao endereço IP que especificamos. Esta string pode ser um endereço IP de texto simples, um nome de host, um nome de interface de rede (no UNIX) ou apenas um '-' para usar o endereço IP padrão. | |
CURLOPT_INTERFACE | O nome da interface de envio de rede pode ser um nome de interface, um endereço IP ou um nome de host. | |
CURLOPT_KRB4LEVEL | Nível de segurança KRB4 (Kerberos 4). Qualquer um dos seguintes valores é válido (em ordem do menor para o maior): "clear" , "safe" , "confidential" , "private". Se a string não corresponder a nada disso, "private" será usado. Definir esta opção como NULL desativará a autenticação de segurança KRB4. Atualmente a certificação de segurança KRB4 só pode ser usada para transferências FTP. | |
CURLOPT_POSTFIELDS | Todos os dados são enviados através da operação "POST" no protocolo HTTP. Para enviar um arquivo, prefixe o nome do arquivo com @ e use o caminho completo. Este parâmetro pode ser passado como uma string codificada em URL como ' para1=val1¶2=val2&... ' ou usar uma matriz com o nome do campo como chave e os dados do campo como valor. Se value for uma matriz, o cabeçalho Content-Type será definido como multipart/form-data . | |
CURLOPT_PROXY | Canal proxy HTTP. | |
CURLOPT_PROXYUSERPWD | Uma string no formato "[nome de usuário]:[senha]" usada para conectar-se ao proxy. | |
CURLOPT_RANDOM_FILE | O nome de um arquivo usado para gerar a semente de número aleatório SSL. | |
CURLOPT_RANGE | Na forma de "XY" , onde X e Y são opções opcionais para obter o intervalo de dados, em bytes. O encadeamento de transporte HTTP também suporta várias duplicatas separadas por vírgulas, como "XY,NM" . | |
CURLOPT_REFERER | O conteúdo de "Referer: " no cabeçalho da solicitação HTTP. | |
CURLOPT_SSL_CIPHER_LIST | Uma lista de algoritmos de criptografia SSL. Por exemplo, RC4-SHA e TLSv1 são listas de criptografia disponíveis. | |
CURLOPT_SSLCERT | O nome de um arquivo que contém um certificado no formato PEM. | |
CURLOPT_SSLCERTPASSWD | Senha necessária para usar o certificado CURLOPT_SSLCERT . | |
CURLOPT_SSLCERTTYPE | O tipo de certificado. Os formatos suportados são "PEM" (padrão), "DER" e "ENG" . | Adicionado no cURL 7.9.3. |
CURLOPT_SSLENGINE | Variável do mecanismo de criptografia usada para a chave privada SSL especificada em CURLOPT_SSLKEY . | |
CURLOPT_SSLENGINE_DEFAULT | Variáveis usadas para operações de criptografia assimétrica. | |
CURLOPT_SSLKEY | O nome do arquivo que contém a chave privada SSL. | |
CURLOPT_SSLKEYPASSWD | A senha da chave privada SSL especificada em CURLOPT_SSLKEY .
| |
CURLOPT_SSLKEYTYPE | O tipo de criptografia da chave privada especificada em CURLOPT_SSLKEY . Os tipos de chave suportados são "PEM" (valor padrão), "DER" e "ENG" . | |
CURLOPT_URL | O endereço URL que precisa ser obtido também pode ser definido na função curl_init() . | |
CURLOPT_USERAGENT | Inclua uma string de cabeçalho "User-Agent:" na solicitação HTTP. | |
CURLOPT_USERPWD | Passe o nome de usuário e a senha necessários para uma conexão no formato: "[nomedeusuário]:[senha]" . |
Para os parâmetros opcionais das seguintes opções, o valor deve ser definido como um array:
Opções | Valor opcional | Observação |
---|---|---|
CURLOPT_HTTP200ALIASES | Matriz de código de resposta 200, a resposta na matriz é considerada uma resposta correta, caso contrário, é considerada um erro. | Adicionado no cURL 7.10.3. |
CURLOPT_HTTPHEADER | Uma matriz usada para definir campos de cabeçalho HTTP. Use um array no seguinte formato para definir: array('Content-type: text/plain', 'Content-length: 100') | |
CURLOPT_POSTQUOTE | Um conjunto de comandos FTP executados no servidor após a execução da solicitação FTP. | |
CURLOPT_QUOTE | Um conjunto de comandos FTP a serem executados no servidor antes da solicitação FTP. |
Para os parâmetros opcionais das opções a seguir, o valor deve ser definido como um recurso de fluxo (por exemplo, usando fopen()):
Opções | Valor opcional |
---|---|
CURLOPT_FILE | Defina o local do arquivo de saída. O valor é um tipo de recurso. O padrão é STDOUT (navegador). |
CURLOPT_INFILE | O endereço do arquivo que precisa ser lido ao fazer upload de um arquivo. O valor é um tipo de recurso. |
CURLOPT_STDERR | Defina um endereço de saída de erro, o valor é um tipo de recurso, substituindo o padrão STDERR . |
CURLOPT_WRITEHEADER | Defina o endereço do arquivo onde o conteúdo da parte do cabeçalho é gravado e o valor é um tipo de recurso. |
Para os parâmetros opcionais das opções a seguir, o valor deve ser definido como um nome de função de retorno de chamada:
Opções | Valor opcional |
---|---|
CURLOPT_HEADEFUNCTION | Defina uma função de retorno de chamada. Esta função possui dois parâmetros. O primeiro é o identificador do recurso cURL e o segundo são os dados do cabeçalho de saída. A saída dos dados do cabeçalho deve contar com esta função, que retorna o tamanho dos dados gravados. |
CURLOPT_PASSWDFUNCTION | Defina uma função de retorno de chamada com três parâmetros. O primeiro é o identificador do recurso cURL, o segundo é um prompt de senha e o terceiro parâmetro é o comprimento máximo permitido da senha. Retorna o valor da senha. |
CURLOPT_PROGRESSFOCTION | Configure uma função de retorno de chamada com três parâmetros. O primeiro é o identificador de recurso cURL, o segundo é um recurso descritor de arquivo e o terceiro é o comprimento. Retorna os dados contidos. |
CURLOPT_READFUNCTION | Nome da função de retorno de chamada. Esta função deve aceitar três parâmetros. O primeiro é o recurso cURL; o segundo é o recurso de stream passado para cURL através da opção CURLOPT_INFILE ; A função de retorno de chamada deve retornar uma string cujo comprimento seja menor ou igual à quantidade de dados solicitada (terceiro parâmetro). Geralmente lido a partir do recurso de fluxo de entrada. Retorna a string vazia como um sinal EOF (fim de arquivo). |
CURLOPT_WRITEFUNCTION | Nome da função de retorno de chamada. Esta função deve aceitar dois parâmetros. O primeiro é o recurso cURL; o segundo é a sequência de dados a ser gravada. Os dados devem ser salvos dentro da função. A função deve retornar o número exato de bytes passados para gravar os dados, caso contrário a transferência será interrompida por um erro. |
Retorna TRUE em caso de sucesso ou FALSE em caso de falha.
Versão | ilustrar |
---|---|
5.2.10 | Introduzido CURLOPT_PROTOCOLS e CURLOPT_REDIR_PROTOCOLS . |
5.1.0 | Introduzido CURLOPT_AUTOREFERER , CURLOPT_BINARYTRANSFER , CURLOPT_FTPSSLAUTH , CURLOPT_PROXYAUTH e CURLOPT_TIMECONDITION . |
5.0.0 | Introduzido CURLOPT_FTP_USE_EPRT , CURLOPT_NOSIGNAL , CURLOPT_UNRESTRICTED_AUTH , CURLOPT_BUFFERSIZE , CURLOPT_HTTPAUTH , CURLOPT_PROXYPORT , CURLOPT_PROXYTYPE , CURLOPT_SSLCERTTYPE e CURLOPT_HTTP200ALIASES . |
Inicialize uma nova sessão cURL e obtenha uma página da web
<?php// Crie um novo recurso cURL $ch = curl_init();// Defina a URL e as opções correspondentes curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); , CURLOPT_HEADER, falso); // Pegue a URL e passe para o navegador curl_exec($ch);//Fecha o recurso cURL e libera o recurso do sistema curl_close($ch);?>
Exemplo de upload de arquivo:
<?php/* http://localhost/upload.php:print_r($_POST);print_r($_FILES);*/$ch = curl_init();$data = array('nome' => 'Foo', 'arquivo' => '@/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);?>
Os resultados de saída do exemplo acima são os seguintes:
Array( [nome] => Foo)Array( [arquivo] => Array ( [nome] => test.png [tipo] => imagem/png [tmp_name] => /tmp/phpcpjNeQ [erro] => 0 [ tamanho] => 279 ))
Ao passar uma matriz para CURLOPT_POSTFIELDS, cURL codificará os dados em multipart/form-data, enquanto ao passar uma string codificada em URL, os dados serão codificados em application/x-www-form-urlencoded.