Sigueme por RSS! RSS

cURL: inicio

cURL es una librería que permite conectar y comunicarse con diferentes tipos de servidores, haciendo uso de algunos de los protocolos más comunes, FTP, FTPS, HTTP, HTTPS, Telnet, etc. 

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

0 comentarios: Suscribete a los comentarios por RSS

Publicar un comentario

- Los comentarios están siendo moderados y serán publicados en la brevedad posible.