English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
(PHP 4 >= 4.0.2, PHP 5)
curl_setopt — Definir uma opção de transmissão CURL.
bool curl_setopt ( resource $ch, int $option, mixed $value )
Configura uma opção para o柄 de sessão CURL fornecido.
ch
O柄 CURL retornado por curl_init().
option
A opção CURLOPT_XXX que precisa ser configurada.
value
Define o valor em option.
Para os parâmetros opcionais desses options, o valor deve ser definido como um valor do tipo bool:
Opção | OpcionalvalueValor | Observação |
---|---|---|
CURLOPT_AUTOREFERER | Ao determinarLocation:No redirecionamento, ajusta automaticamente o cabeçalhoReferer:informações. | |
CURLOPT_BINARYTRANSFER | Ao ativarCURLOPT_RETURNTRANSFERao retornar, retornará a saída nativa (raw). | |
CURLOPT_COOKIESESSION | Ativado, o curl passará apenas um cookie de sessão, ignorando outros cookies. Padrão, o CURL retornará todos os cookies ao servidor. O cookie de sessão é aquele que existe para determinar se o cookie do servidor é válido. | |
CURLOPT_CRLF | Ativado, converterá o caractere de nova linha Unix em carriage return newline. | |
CURLOPT_DNS_USE_GLOBAL_CACHE | Ativado, ele habilitará um cache DNS global, este é seguro para threads e está ativado por padrão. | |
CURLOPT_FAILONERROR | Exibe o código de status HTTP, o comportamento padrão é ignorar números menores ou iguais a4informações HTTP de 00. | |
CURLOPT_FILETIME | Ativado, tentará modificar as informações do documento remoto. As informações de resultado serão retornadas através da funçãoCURLINFO_FILETIMEopção de retorno. curl_getinfo(). | |
no campo de bits. Se ativado, o valor do campo de bits restringirá a thread de transmissão a | Ativado, ele retornará o"Location: "Colocado no cabeçalho e retornado recursivamente ao servidor, usandoCURLOPT_MAXREDIRSPode limitar o número de retornos recursivos. | |
CURLOPT_FORBID_REUSE | Forçar a desconexão após a conclusão da interação, não pode ser reutilizado. | |
CURLOPT_FRESH_CONNECT | Forçar a obtenção de uma nova conexão, em vez da conexão armazenada no cache. | |
CURLOPT_FTP_USE_EPRT | Ativado, ao baixar FTP, usa o comando EPRT (ou LPRT). Definido comoFALSEDesativado EPRT e LPRT, usa o comando PORT apenas. | |
CURLOPT_FTP_USE_EPSV | Ativado, tenta o comando EPSV antes de retornar ao modo PASV durante a transferência FTP. Definido comoFALSEDesativa o comando EPSV. | |
CURLOPT_FTPAPPEND | Quando ativado, anexa a escrita ao arquivo em vez de substituí-lo. | |
CURLOPT_FTPASCII | CURLOPT_TRANSFERTEXTé um alias. | |
CURLOPT_FTPLISTONLY | Quando ativado, lista apenas os nomes dos diretórios FTP. | |
CURLOPT_HEADER | Quando ativado, envia as informações do cabeçalho como um fluxo de dados. | |
CURLINFO_HEADER_OUT | Quando ativado, rastrea a string de solicitação do handle. | Do PHP 5.1.3 Tempo de tentativa de conexão em milissegundos. Se definido como 0, aguarda infinitamente.CURLINFO_O prefixo é intencional (intencional). |
CURLOPT_HTTPGET | Quando ativado, define o método HTTP como GET, pois GET é o padrão, então é usado apenas quando modificado. | |
CURLOPT_HTTPPROXYTUNNEL | Quando ativado, transmite através de proxy HTTP. | |
CURLOPT_MUTE | Quando ativado, restaura todos os parâmetros alterados nas funções CURL para os valores padrão. | |
CURLOPT_NETRC | Após a conexão ser estabelecida, acesse ~/Obtém informações de nome de usuário e senha do arquivo .netrc para conectar ao site remoto. | |
CURLOPT_NOBODY | Quando ativado, não há saída para a parte do BODY do HTML. | |
CURLOPT_NOPROGRESS | Quando ativado, desativa a barra de progresso da transmissão CURL, a configuração padrão é ativada. Nota: O PHP configura automaticamente esta opção comoTRUEApenas deve ser alterado para fins de depuração. | |
CURLOPT_NOSIGNAL | Quando ativado, ignora todos os sinais passados ao php pelo CURL. Este item é ativado por padrão em transmissões multi-threading SAPI. | CURL 7.10adicionado. |
CURLOPT_POST | Quando ativado, envia uma solicitação POST comum, do tipo:application/x-www-form-urlencoded, como se fosse um envio de formulário. | |
CURLOPT_PUT | Quando ativado, permite que o HTTP envie arquivos, deve ser configurado simultaneamenteCURLOPT_INFILEe)。。 | |
CURLOPT_RETURNTRANSFER | Retorna as informações obtidas com curl_exec() como um fluxo de arquivo, em vez de saída direta. | |
CURLOPT_SSL_VERIFYPEER | Desativado, o CURL interromperá a verificação do servidor.CURLOPT_CAINFOOpção de configuração do uso de certificadosCURLOPT_CAPATHOpção de configuração do diretório de certificados SeCURLOPT_SSL_VERIFYPEER(o valor padrão é2) é ativado,passar um deslocamento de byte (usado para continuar o download).Precisa ser configurado comoTRUECaso contrário, configure comoFALSE。 | Desde CURL 7.10Começa como padrão deTRUE. A partir do CURL 7.10Início da instalação de bind padrão. |
CURLOPT_TRANSFERTEXT | Ativado, o modo ASCII é usado para transmissão FTP. Para LDAP, ele recupera informações de texto puro em vez de HTML. No sistema Windows, o sistema não consideraSTDOUT设置成binary模式。 | |
CURLOPT_UNRESTRICTED_AUTH | definido como modo binary.no campo de bits. Se ativado, o valor do campo de bits restringirá a thread de transmissão aao usar | |
Continuar a adicionar informações de nome de usuário e senha nos múltiplos locations do header gerados, mesmo que o domínio tenha mudado. | CURLOPT_UPLOAD | |
Ativar após permitir o upload de arquivos. | CURLOPT_VERBOSESTDERRAtivará o relatório de todas as informações, armazenadas emCURLOPT_STDERRou especificado |
em.
Opção | OpcionalvalueValor | Observação |
---|---|---|
CURLOPT_BUFFERSIZE | Para os parâmetros opcionais dessas opções, o valor deve ser configurado como um inteiro do tipo: | No CURL 7.10foi adicionado. |
CURLOPT_CLOSEPOLICY | O tamanho lido do cache em cada vez de obtenção de dados, mas não há garantia de que este valor será preenchido a cada vez. | |
Não é CURLCLOSEPOLICY_LEAST_RECENTLY_USED nem CURLCLOSEPOLICY_OLDEST, existem outras três CURLCLOSEPOLICY, mas o CURL ainda não as suporta. | CURLOPT_CONNECTTIMEOUT | |
Tempo de espera antes de estabelecer a conexão. Se definido como 0, aguarda infinitamente. | CURLOPT_CONNECTTIMEOUT_MS | No CURL 7.16.2foi adicionado. 5.2.3Tempo de tentativa de conexão em milissegundos. Se definido como 0, aguarda infinitamente. |
disponível para uso. | CURLOPT_DNS_CACHE_TIMEOUT12Configura o tempo de armazenamento da informação DNS na memória, o padrão é | |
CURLOPT_FTPSSLAUTH | 0 segundos.Método de verificação FTP: CURLFTPAUTH_SSL(Primeiro tentar SSL), CURLFTPAUTH_TLS(Primeiro tentar TLS) ou CURLFTPAUTH_DEFAULT | No CURL 7.12.2foi adicionado. |
(Deixar o CURL decidir automaticamente). | CURLOPT_HTTP_VERSION CURL_HTTP_VERSION_NONE.0) ou1(Valor padrão, deixando o CURL decidir qual versão usar), _/1_0.0) ou1CURL_HTTP_VERSION_1 _/1.1(Forçar o uso de HTTP | |
)。 | CURLOPT_INFILESIZE | |
quando a velocidade de transferência for menor que | para definir o limite do tamanho do arquivo de upload, em bytes (byte).quando a velocidade de transferência for menor queCURLOPT_LOW_SPEED_LIMIT/bytessec),O PHP usarápara determinar se a transferência deve ser cancelada devido a lentidão. | |
sec),O PHP usará | para definir o limite do tamanho do arquivo de upload, em bytes (byte).quando a velocidade de transferência for menor queCURLOPT_LOW_SPEED_LIMIT/bytessec),O PHP usarápara determinar se a transferência deve ser cancelada devido a lentidão. | |
CURLOPT_MAXCONNECTS | Número máximo de conexões permitidas, se excedido, será usadoCURLOPT_CLOSEPOLICYDecide quais conexões devem ser encerradas. | |
CURLOPT_MAXREDIRS | Especifica o número máximo de redirecionamentos HTTP, esta opção é relacionada ano campo de bits. Se ativado, o valor do campo de bits restringirá a thread de transmissão ausados juntos. | |
CURLOPT_PORT | Usado para especificar a porta de conexão. (Opcional) | |
CURLOPT_PROTOCOLS | CURLPROXY_SOCKS*的位域指。如果被启用,位域值会限定libcurl在传输过程中有哪些可使用的协议。这将允许你在编译libcurl时支持众多协议,但是限制只是用它们中被允许使用的一个子集。默认libcurl将会使用全部它支持的协议。参见CURLOPT_REDIR_PROTOCOLSno campo de bits. Se ativado, o valor do campo de bits limitará os protocolos que o libcurl pode usar durante a transmissão. Isso permitirá que você suporte muitos protocolos ao compilar o libcurl, mas limitará apenas o subconjunto permitido. O libcurl padrão usará todos os protocolos que ele suporta. Veja | No CURL 7.19.4foi adicionado. |
CURLOPT_PROTOCOLS | CURLPROXY_SOCKS*的位域指。如果被启用,位域值会限定libcurl在传输过程中有哪些可使用的协议。这将允许你在编译libcurl时支持众多协议,但是限制只是用它们中被允许使用的一个子集。默认libcurl将会使用全部它支持的协议。参见CURLOPT_REDIR_PROTOCOLSno campo de bits. Se ativado, o valor do campo de bits limitará os protocolos que o libcurl pode usar durante a transmissão. Isso permitirá que você suporte muitos protocolos ao compilar o libcurl, mas limitará apenas o subconjunto permitido. O libcurl padrão usará todos os protocolos que ele suporta. Veja | No CURL 7.19.4foi adicionado. |
CURLOPT_PROXYAUTH | . 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_ALLCURLOPT_HTTPAUTHmodo de verificação de conexão do proxy HTTP. Usado emno sinalizador de campo de bits para configurar as opções correspondentes. Para a verificação de proxy, há apenaseCURLAUTH_BASICCURLAUTH_NTLM | No CURL 7.10.7foi adicionado. |
CURLOPT_PROXYPORT | atualmente suportados.CURLOPT_PROXYa porta do servidor proxy. A porta também pode ser configurada em | |
CURLOPT_PROXYTYPE | ser configurado.não CURLPROXY_HTTP(valor padrão) é5。 | No CURL 7.10foi adicionado. |
CURLOPT_REDIR_PROTOCOLS | CURLPROXY_SOCKS*CURLPROTO_no campo de bits. Se ativado, o valor do campo de bits restringirá a thread de transmissão aCURLOPT_FOLLOWLOCATION7.19.4protocolos disponíveis ao seguir uma redireção. Isso permitirá que você restringa a subconjunto de protocolos permitidos para a transmissão de threads ao seguir redirecionamentos. O libcurl padrão permitirá todos os protocolos exceto FILE e SCP. Isso é semelhante aCURLOPT_PROTOCOLS。 | No CURL 7.19.4foi adicionado. |
versões de pré-lançamento seguem todos os protocolos suportados sem condições. Sobre os constantes de protocolo, consulte | CURLOPT_RESUME_FROM | |
passar um deslocamento de byte (usado para continuar o download). | 1 CURLOPT_SSL_VERIFYHOST2 verificar se o nome comum existe e se coincide com o nome do host fornecido. Tradutor: O nome comum (Common Name) geralmente é o domínio (domain) ou subdomínio (sub domain) que você vai solicitar o certificado SSL. | |
CURLOPT_SSLVERSION | versão do SSL usado (2 ou 3)。Pelo padrão, o PHP detecta automaticamente este valor, embora em alguns casos seja necessário configurá-lo manualmente. | |
CURLOPT_TIMECONDITION | se emCURLOPT_TIMEVALUEeditada após um tempo especificado, então usaCURL_TIMECOND_IFMODSINCEretorna a página, se não foi modificada eCURLOPT_HEADERse true, retorna um"304 Not Modified"do header, CURLOPT_HEADERse for false, usaCURL_TIMECOND_IFUNMODSINCEo valor padrão éCURL_TIMECOND_IFUNMODSINCE。 | |
CURLOPT_TIMEOUT | definir o número máximo de segundos que o CURL pode executar. | |
CURLOPT_TIMEOUT_MS | definir o número máximo de milissegundos que o CURL pode executar. | No CURL 7.16.2foi adicionado. 5.2.3a partir de que pode ser usado. |
CURLOPT_TIMEVALUE | definirCURLOPT_TIMECONDITIONo timestamp usado, no estado padrão, éCURL_TIMECOND_IFMODSINCE。 |
Para os seguintes parâmetros optionais, o valor deve ser configurado como uma string do tipo:
Opção | OpcionalvalueValor | Observação |
---|---|---|
CURLOPT_CAINFO | um que contém1um ou mais arquivos usados para que o servidor verifique a certificação. Este parâmetro é válido apenas quando usado comCURLOPT_SSL_VERIFYPEER. | |
CURLOPT_CAPATH | um diretório que contém várias certificações CA. Esta opção é significativa apenas quando usada comCURLOPT_SSL_VERIFYPEERusados juntos. | |
CURLOPT_COOKIE | definir no cabeçalho de solicitação HTTP"Cookie: "parte do conteúdo. Múltiplos cookies são separados por ponto-e-vírgula, seguidos de um espaço (por exemplo, "fruit=apple; colour=red). | |
CURLOPT_COOKIEFILE | o nome do arquivo que contém dados de cookie, o formato do arquivo de cookie pode ser o formato Netscape ou apenas informações de cabeçalho HTTP armazenadas no arquivo. | |
CURLOPT_COOKIEJAR | o arquivo para salvar informações de cookie após a conclusão da conexão. | |
CURLOPT_CUSTOMREQUEST | usar uma mensagem de solicitação personalizada em vez de"GET"ou"HEAD"para executar"DELETE" ou outras solicitações HTTP mais ocultas. Valores válidos como"GET","POST","CONNECT"etc. Isso significa que não deve inserir toda a solicitação HTTP aqui. Por exemplo, insira"GET" /index.html HTTP/1.0\r\n\r\n"está incorreto. Nota: não use antes de confirmar que o servidor suporta este método de solicitação personalizado. | |
CURLOPT_EGDSOCKET | semelhanteCURLOPT_RANDOM_FILEexceto um socket do Daemon de Acolhimento de Entropia. | |
CURLOPT_ENCODING | no cabeçalho de solicitação HTTP"Accept"-Encoding: "do valor. Codificações suportadas incluem"identity",,e"deflate""gzip". Se a string estiver vazia"" | No CURL 7.10foi adicionado. |
,O cabeçalho de solicitação enviará todos os tipos de codificação suportados. | CURLOPT_FTPPORT-'para usar o endereço IP padrão. Este valor será usado para obter o endereço IP necessário para o comando "POST" do FTP. O comando "POST" instrui o servidor remoto a se conectar ao endereço IP especificado. Esta string pode ser um endereço IP de texto puro, um nome de host, um nome de interface de rede (em UNIX) ou apenas | |
CURLOPT_INTERFACE | O nome da interface de envio de rede, que pode ser um nome de interface, endereço IP ou um nome de host. | |
CURLOPT_KRB4LEVEL | KRB4 (Kerberos 4) Nível de segurança. Qualquer valor a seguir é válido (em ordem de baixo para alto):"clear"、"safe"、"confidential"、"private".. Se a string não coincidir com essas, será usada"private". Esta opção será configurada comoNULLao mesmo tempo, desativará KRB4 A autenticação segura. Atualmente KRB4 A autenticação segura pode ser usada apenas para transmissão FTP. | |
CURLOPT_POSTFIELDS | Todos os dados serão enviados usando a operação "POST" do protocolo HTTP. Para enviar um arquivo, coloque o nome do arquivo antes de@com prefixo e usando o caminho completo. Este parâmetro pode ser um string após urlencoded, comopara1=val1¶2=val2&...'ou usar uma matriz com o nome do campo como chave e os dados do campo como valor. SevalueÉ uma matriz,Content-TypeO cabeçalho será configurado comomultipart/form-data。 | |
CURLOPT_PROXY | Canal de proxy HTTP. | |
CURLOPT_PROXYUSERPWD | Um nome usado para conectar ao proxy."[username]:[password]"uma string no formato. | |
CURLOPT_RANDOM_FILE | Um nome de arquivo usado para gerar a semente de números aleatórios SSL. | |
CURLOPT_RANGE | com"X-Y"na forma, onde X e Y são opções, o intervalo de dados a serem obtidos, em bytes. As threads de transmissão HTTP também suportam alguns itens repetidos, separados por vírgula, como"X-Y,N-M"。 | |
CURLOPT_REFERER | No cabeçalho de solicitação HTTP"Referer: "do conteúdo. | |
CURLOPT_SSL_CIPHER_LIST | Uma lista de algoritmos de criptografia SSL. Por exemploRC4-SHAeTLSv1São todas as listas de criptografia disponíveis. | |
CURLOPT_SSLCERT | Um nome de arquivo que contém um certificado no formato PEM. | |
CURLOPT_SSLCERTPASSWD | 使用CURLOPT_SSLCERTCURLOPT_SSLCERTPASSWD | |
CURLOPT_SSLCERTTYPE | A senha necessária para o certificado."PEM" CURLOPT_SSLCERT "DER"e"ENG"。 | No CURL 7.9.3foi adicionado. |
Tipo de certificado. Formatos suportados incluem | (valor padrão),CURLOPT_SSLKEYCURLOPT_SSLENGINE | |
A variável do motor de criptografia da chave privada SSL especificado no | CURLOPT_SSLENGINE_DEFAULT | |
CURLOPT_SSLKEY | Variável usada para operações de criptografia assimétrica. | |
Nome do arquivo que contém a chave privada SSL. | CURLOPT_SSLKEYPASSWDCURLOPT_SSLKEYA senha da chave privada SSL especificada no Nota: Como essa opção contém informações sensíveis de senha, lembre-se de garantir a segurança do script PHP. | |
CURLOPT_SSLKEYTYPE | CURLOPT_SSLKEYO tipo de criptografia do chave privada especificado no"PEM"(valor padrão),"DER"e"ENG"。 | |
CURLOPT_URL | Endereço da URL a ser obtida, também pode ser configurado na função curl_init(). | |
CURLOPT_USERAGENT | Incluir um"User-Agent: "Cabeçalho da string. | |
CURLOPT_USERPWD | Passar um nome de usuário e senha necessários para a conexão, no formato:"[username]:[password]"。 |
Para os seguintes parâmetros opcionais, o valor deve ser configurado como um array:
Opção | OpcionalvalueValor | Observação |
---|---|---|
CURLOPT_HTTP200ALIASES | 200 código de resposta de array, os códigos de resposta no array são considerados respostas corretas, caso contrário, são considerados incorretos. | No CURL 7.10.3foi adicionado. |
CURLOPT_HTTPHEADER | Um array usado para definir campos de cabeçalho HTTP. Use o seguinte formato de array para configurar: 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 executados no servidor antes da solicitação FTP. |
Para os seguintes parâmetros opcionais, o valor deve ser configurado como um recurso de fluxo (por exemplo, usando fopen()):
Opção | OpcionalvalueValor |
---|---|
CURLOPT_FILE | Definir a posição do arquivo de saída, o valor é um tipo de recurso, o padrão éSTDOUT (navegador web). |
CURLOPT_INFILE | Endereço do arquivo a ser lido durante o upload do arquivo, o valor é um tipo de recurso. |
CURLOPT_STDERR | Definir um endereço de saída de erro, o valor é um tipo de recurso, substituindo o padrãoSTDERR。 |
CURLOPT_WRITEHEADER | Defina o endereço do arquivo de escrita para o conteúdo do cabeçalho, o valor é um tipo de recurso. |
Para os parâmetros opcionais dessas opções, o valor deve ser definido como o nome da função de chamada de volta:
Opção | OpcionalvalueValor |
---|---|
CURLOPT_HEADERFUNCTION | Defina uma função de chamada de volta, que tem dois parâmetros, o primeiro é o handle de recurso CURL, o segundo é os dados de cabeçalho de saída. A saída dos dados de cabeçalho deve depender dessa função, retorne o tamanho dos dados escritos. |
CURLOPT_PASSWDFUNCTION | Defina uma função de chamada de volta, com três parâmetros, o primeiro é o handle de recurso CURL, o segundo é o prompt de senha, o terceiro é o comprimento máximo permitido para a senha. Retorne o valor da senha. |
CURLOPT_PROGRESSFUNCTION | Defina uma função de chamada de volta, com três parâmetros, o primeiro é o handle de recurso CURL, o segundo é o recurso de descritor de arquivo, o terceiro é o comprimento. Retorne os dados contidos. |
CURLOPT_READFUNCTION | Nome da função de chamada de volta. Esta função deve aceitar três parâmetros. O primeiro é o recurso CURL; o segundo é a opção passada para o CURL; o terceiro é o número de bytes lidos. Retorno CURLOPT_INFILE O recurso de stream passado para o CURL; o terceiro parâmetro é a quantidade máxima de dados que podem ser lidos. Retorno A função de chamada de volta deve retornar uma string, cujo comprimento seja menor ou igual ao quantidade de dados solicitados (o terceiro parâmetro). Geralmente, os dados são lidos do stream Leitura de recursos. Retorne uma string vazia como EOFSinal de fim de arquivo (EOF). |
CURLOPT_WRITEFUNCTION | Nome da função de chamada de volta. Esta função deve aceitar dois parâmetros. O primeiro é o recurso CURL; o segundo é a string de dados a ser escrita. Número Os dados devem ser salvos dentro da função. A função deve retornar o número exato de bytes lidos para os dados a serem escritos, de outra forma, a transferência será interrompida por um erro. Ponto. |
Retorna TRUE quando bem-sucedido, ou FALSE em caso de falha.
Versão | Descrição |
---|---|
5.2.10 | Introdução CURLOPT_PROTOCOLS , andCURLOPT_REDIR_PROTOCOLS . |
5.1.0 | Introdução CURLOPT_AUTOREFERER ,CURLOPT_BINARYTRANSFER ,CURLOPT_FTPSSLAUTH ,CURLOPT_PROXYAUTH , andCURLOPT_TIMECONDITION . |
5.0.0 | Introdução CURLOPT_FTP_USE_EPRT ,CURLOPT_NOSIGNAL ,CURLOPT_UNRESTRICTED_AUTH ,CURLOPT_BUFFERSIZE ,CURLOPT_HTTPAUTH ,CURLOPT_PROXYPORT ,CURLOPT_PROXYTYPE ,CURLOPT_SSLCERTTYPE , andCURLOPT_HTTP200ALIASES . |
初始化一个新的CURL会话并获取一个网页
<?php // 创建一个新CURL资源 $ch = curl_init(); // 设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, "http://pt.oldtoolbag.com/"); curl_setopt($ch, CURLOPT_HEADER, false); // 抓取URL并把它传递给浏览器 curl_exec($ch); //关闭CURL资源,并且释放系统资源 curl_close($ch); ?>
上传文件示例:
<?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); ?>
以上示例输出结果如下:
Array ( [name] => Foo ) Array ( [file] => Array ( [name] => test.png [type] => image/png [tmp_name] => /tmp/phpcpjNeQ [error] => 0 [size] => 279 ) )
传递一个数组到CURLOPT_POSTFIELDS,CURL会把数据编码成 multipart/form-data,而然传递一个URL-encoded字符串时,数据会被编码成 application/x-www-form-urlencoded。