CURL, Biblioteca de Cliente de URL
Introdução
O PHP suporta a libcurl, uma biblioteca criada por Daniel Stenberg, que permite a você conectar e comunicar com vários tipos diferentes de servidor com vários tipos diferentes de protocolos. libcurl atualmente suporta os protocolos http, https, ftp, gopher, telnet, dict, file, e ldap. libcurl também suporta certificados HTTPS, HTTP POST, HTTP PUT, upload com FTP (isto também pode ser feito com a extensão de ftp do PHP), upload baseado em formulário HTTP, proxies, cookies, e autenticação usuário+senha.
Estas funções foram adicionadas no PHP 4.0.2.
Dependências
Para poder usar as funções CURL você precisa instalar o pacote » CURL. PHP requer que você use o CURL 7.0.2-beta ou posterior. PHP não irá funcionar com qualquer versão anterior a CURL 7.0.2-beta. No PHP 4.2.3, você precisa do CURL versão 7.9.0 ou posterior. A partir do PHP 4.3.0, você precisa da CURL versão que seja 7.9.8 ou posterior. PHP 5.0.0 requer a libcurl 7.10.5 ou superior.
Instalação
Para usar o suporte a cURL no PHP, você deverá compilar o PHP com --with-curl[=DIR] aonde DIR é a localização do diretório contendo os diretórios lib e include. No diretório "include" deve ter uma pasta chamada "curl" a qual deve conter os arquivos easy.h e curl.h. Deve haver um arquivo chamado libcurl.a localizado no diretório "lib". Começando no PHP 4.3.0 você pode configurar o PHP para usar o cURL para streams URL --with-curlwrappers.
Nota: Nota para usuários de Win32 Para ativar este módulo em um ambiente Windows, você deve copiar libeay32.dll e ssleay32.dll precisa estar presente em seu PATH. Você não precisa da libcurl.dll do site do cURL.
Tipos Resource
Esta extensão define 2 tipos resource: um manipulador cURL handle e o multi-manipulador cURL.
Constantes pré-definidas
Veja também as Constantes Pré-definidas cURL
Exemplos
Após você ter compilado o PHP com suporte a cURL, você pode começar a usar as funções cURL. A idéia basica por trás das funções cURL é que você começa uma sessão cURL usando curl_init(), então você define todas as suas opções para a transferencia com curl_setopt(), então você executa a sessão com curl_exec() e você termona a sua sessão usando a função curl_close(). Aqui está um exemplo que usa as funções cURL para obter a homepage example.com em um arquivo:
Example#1 Usando o módulo cURL para obter a homepage example.com
<?php
$ch = curl_init("https://www.example.com/");
$fp = fopen("example_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
Índice
- Constantes — Constantes Pré-definidas Curl
- curl_close — Fecha uma sessão CURL
- curl_copy_handle — Copia o manipulador cURL com todas as suas preferências
- curl_errno — Retorna o último número de erro
- curl_error — Retorna uma string contendo o último erro para a sessão atual
- curl_exec — Executa uma sessão CURL
- curl_getinfo — Obtém uma informação sobre uma transferência específica
- curl_init — Inicializa uma sessão cURL
- curl_multi_add_handle — Adiciona um manipulador cURL a um multi manipulador cURL
- curl_multi_close — Fecha um conjunto de manipuladores cURL
- curl_multi_exec — Executa a sub-conexão do atual manipulador cURL
- curl_multi_getcontent — Retorna o conteúdo de um manipulador cURL se CURLOPT_RETURNTRANSFER é usado
- curl_multi_info_read — Get information about the current transfers
- curl_multi_init — Retorna um novo multi manipulador cURL
- curl_multi_remove_handle — Remove a multi handle from a set of cURL handles
- curl_multi_select — Obtem todas as sockets associadas com a extensão cURL, podendo assim ser "selecionada"
- curl_setopt_array — Set multiple options for a cURL transfer
- curl_setopt — Define uma opção para a transferencia CURL
- curl_version — Obtém informação da versão da cURL