PHP soporta libcurl, una biblioteca creada por Danile Stenberg, que permite conexión y comunicación con varios tipos de servidores diferentes con varios tipos de protocolos diferentes. libcurl actualmente soporta los portocolos http, https, ftp, gopher, telnet, dict, file y ldap. libcurl también soporta certificados HTTPS, HTTP POST, HTTP PUT, envío por FTP (esto también puede ser realizado con la extensión ftp de PHP), envío de archivos tipo formulario HTTP, servidores proxy, cookies y autenticación usuario+contraseña.
Estas funciones fueron agregadas en 4.0.2.
Para poder usar las funciones CURL deberá instalar el paquete CURL. PHP requiere que use CURL 7.0.2-beta o superior. PHP no funcionará con una versión de CURL menor a 7.0.2-beta. Desde la versión 4.2.3 de PHP se necesita, al menos, CURL 7.9.0 o superior.
To use PHP's CURL support you must also compile PHP --with-curl[=DIR] where DIR is the location of the directory containing the lib and include directories. In the "include" directory there should be a folder named "curl" which should contain the easy.h and curl.h files. There should be a file named libcurl.a located in the "lib" directory. Beginning with PHP 4.3.0 you can configure PHP to use CURL for URL streams --with-curlwrappers.
Note to Win32 Users: In order to enable this module on a Windows environment, you must copy libeay32.dll and ssleay32.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM folder of your Windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM)
Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.
Una vez que hemos compilado PHP con soporte para CURL, podemos comenzar a usar las funciones CURL. La idea básica tras las funciones CURL es que inicialicemos una sesión CURL usando la función curl_init(), luego podemos establecer las opciones para la transferencia a través de la función curl_setopt(), y finalmente podemos ejecutar la sesión con la función curl_exec() para luego cerrarla con curl_close(). Aqui hay un ejemplo que usa funciones CURL para traer el contenido de la página de inicio de example.com y guardarlo en un archivo: