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.
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.
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.
Esta extensão define 2 tipos resource: um manipulador cURL handle e o multi-manipulador cURL.
Veja também as Constantes Pré-definidas cURL
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("http://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);
?>