La librerÃa trabaja con sintaxis URL, con ella podrÃamos, entre otras cosas, automatizar los procesos que un usuario puede hacer en un determinado sitio.
Para poder hacer uso de cURl en PHP, es necesario compilarlo con el lenguaje, para verificar si disponemos de la librerÃa, basta con llamar a la función phpinfo y verificar en la pagina devuelta, si se encuentra el soporte, de no ser asÃ, habrá que instalarlo.
<?php phpinfo(); ?>
Instalación:
En GNU/Linux necesitaremos del paquete php5-curl, especÃficamente en ubuntu lo harÃamos desde la consola con la siguiente linea:
sudo apt-get install php5-curl
luego reiniciamos el servidor:
sudo /etc/init.d/apache2 restart
En Windows hay que ir al PHP.ini y descomentar la linea:
;extension=php_curl.dll
debe quedar asà (sin el punto y coma ";"):
extension=php_curl.dll
luego reiniciamos el servidor.
Veamos un ejemplo básico del uso de la librerÃa:
# obteniendo el código fuente de una pagina cualquiera # y mostrándolo con nuestro archivo de ejemplo // iniciamos la sesión // nos devolverá un handler si tiene éxito $handler = curl_init("http://cassianinet.blogspot.com"); // obtenemos la respuesta y la mostramos echo curl_exec($handler); // cerramos la sesión curl_close($handler);
Las funciones usadas:
- curl_init - inicia una nueva sesión y devuelve false si hay errores, de lo contrario, un manejador (handler) que puede ser utilizado con las funciones curl_setopt, curl_exec, y curl_close. curl_init recibe opcionalmente la URL del sitio al que se conectara, en caso de no pasar ese parámetro, se puede especificar la dirección usando la función curl_setopt.
- curl_exec - permite ejecutar la sesión que se le pasa como parámetro (handler), lo que significa que debe ejecutarse previamente la función curl_init y si es necesario, las opciones para la sesión establecidas (curl_setopt).
- curl_close - permite cerrar una sesión abierta, recibe como parámetro el handler de la sesión a cerrar.
Con la función curl_setopt podemos establecer opciones para la sesión iniciada, por ejemplo:
especificamos la URL:
// iniciamos la sesión $handler = curl_init(); // Se establece la URL curl_setopt($handler, CURLOPT_URL, "http://cassianinet.blogspot.com"); // obtenemos la respuesta y la mostramos echo curl_exec ($handler);
CURLOPT_URL es una de las opciones que podemos usar, en la documentación oficial podemos ver la lista completa.
Veamos otro ejemplo:
# obteniendo el código fuente de una pagina cualquiera # y almacenándolo dentro un archivo cualquiera // iniciamos la sesión $handler = curl_init("http://cassianinet.blogspot.com"); // abrimos un archivo de texto para escribir en él $file = fopen("code_ejemplo.txt", "w"); // indicamos el número máximo en segundos, // permitido para ejecutar funciones cURL. curl_setopt($handler, CURLOPT_TIMEOUT, 30); // indicamos el fichero en el que se guardará el resultado. curl_setopt($handler, CURLOPT_FILE, $file); // indicamos que no queremos incluir el header en el output. curl_setopt($handler, CURLOPT_HEADER, false); // mostramos un mensaje de acuerdo a la respuesta echo (curl_exec ($handler)) ? 'Procedimiento ejecutado con éxito..' : 'El procedimiento fallo..'; // cerramos la conexión curl_close($handler);
este ultimo ejemplo almacenara el código fuente de una pagina dada, en un archivo de texto especificado.
En toda aplicación son necesarias las validaciones, nunca está de más colocar una condición extra que nos asegure que todo ira como debe, por ejemplo, verificar si el soporte para cURL está disponible, antes de ejecutar el resto del procedimiento:
// comprobamos antes que nada, que el soporte para cURl está disponible if(!function_exists('curl_init')) { // mostramos algún mensaje si lo deseamos echo "Error: PHP no está compilado con cURL."; exit; }
Referencias:
Documentación oficial
- Los comentarios están siendo moderados y serán publicados en la brevedad posible.