9 de agosto de 2009

PHP: ¿Para qué sirve cURL?

La librería libcurl fue creada por Daniel Stenberg que sirve para conectar un servidor vía PHP con otro servidor a través de los típicos protocolos web: HTTP, FTP, etc. En el mundillo todos la conocemos como cURL.

Habitualmente viene instalada en todos los servidores Apache que soportan PHP 4.0.2 o versiones superiores.

Habitualmente cURL se utiliza para cargar webs de otros servidores y procesar sus datos. Por ejemplo, para hacer Webscrapping procesando todos los pisos puestos a la venta en una web inmobiliaria para procesarlos a nuestra base de datos.

También se utiliza para enviar ficheros vía FTP consiguiendo por lo tanto una mayor velocidad que el envío tradicional de ficheros vía formulario. Joomla! permite esta opción para subir ficheros, por ejemplo.

Os pongo a continuación un pequeño ejemplo que sirve para capturar el contenido de una web y volcarlo en una variable de texto.

// creamos el recurso cURL
$cu = curl_init();

// definimos la URL que vamos a cargar
curl_setopt($cu, CURLOPT_URL, "http://www.videojuegosparachicas.com");

// cargamos el contenido de la web en el recurso
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);

// volcamos el contenido del recurso en una variable
$contenidoWeb = curl_exec($cu);

// destruímos el recurso cURL para liberar memoria
curl_close($cu);
?>


Cómo veis no es complicado de utilizar y puede seros muy útil.

3 comentarios:

Anónimo dijo...

Hola, adopto este comentario como pregunta jeje.
Muchas gracias por la info, dice que Joomla lo puede utilizar, pues bien, yo cargo un formulario de un componente determinado en joomla, como podría hacer para que este se cargue via CRUL? (FTP)

además, esto saltearía los límites de upload de los hosting? (definidos en php.ini)
Gracias

Juan, desde Argentina

Elis dijo...

Holas shevere el tutorial,pero cuando ejecuto el codigo me muestra la pagina web del ejemplo como si estaria sin estilos,,me podrian ayudar a solucionar..esperare su pronta respuesta gracias

Gabriel Cuesta dijo...

Seguramente la web que intentas capturar tiene una hoja de estilos externa enlazada con una ruta relativa.

Tendrás que capturarla también o cambiar en el código de la página capturada la ruta del enlace del fichero css.