Libreria Curl
Posted on May 15th, 2006 in ArtÃculos, Programación | No Comments »
Libcurl es una librerÃa que permite establecer conexiones y comunicación con diferentes protocolos como http, ftp, telnet, etc. Esta librerÃa viene integrada con php. Si se esta sobre Windows se tiene que habilitar la extensión desde el php.ini.
http://curl.haxx.se/libcurl/php/install.html
Una vez habilitada podrás obtener contenido de sitios web permitiéndote utilizar muchas opciones diferentes incluyendo solicitudes POST y GET.
Lo primero para empezar a trabajar, es crear una instancia del recurso CURL.
$ch = curl_init ();
Después tenemos que configurarlo estableciéndole las opciones, empezando por la página.
curl_setopt ( $ch, CURLOPT_URL, http://www.google.com/ );
Después le pedimos que ejecute
curl_exec ( $ch );
curl_close ( $ch );
En este caso la pagina será impresa, pero podemos pedir que nos regrese los datos en vez de imprimirlo mediante opción:
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
Con lo que la función curl_exec regresara el contenido en una variable.
$output = curl_exec ( $ch );
A la cual le podremos aplicar otras funciones y procesar la información recibida ya sea para extraer o modificar contenido.
Podemos agregarle muchas otras funciones, por ejemplo
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, true );
La cual permite al recurso, seguir los redirects que le sean enviados.
Podemos además enviar la solicitud como Post y establecer variables.
$data = array ( nombre => ? Pepe?, apellido => ‘Lopez’ );
curl_setopt ( $ch, CURLOPT_POST, true );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
Podemos también establecer el nombre de un agente:
curl_setopt ( $ch, CURLOPT_USERAGENT, ‘MySpide/0.1′ );
Finalmente podemos conocer mas sobre la página con la función cur_getinfo
print_r (curl_getinfo ( $ch ));
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, <span class="literal">"http://www.google.com/"</span>);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$output = curl_exec($ch);
$respuesta = curl_getinfo($ch, CURLINFO_HTTP_CODE);
<span class="keyword">if</span> ($respuesta == <span class="literal">'404'</span>) {
<span class="keyword">echo</span> <span class="literal">'404'</span>;
} <span class="keyword">else</span> {
<span class="keyword">echo</span> $output;
}
curl_close($ch);
?>
Puedes visitar nuestro foro si te quedan dudas o quieres compartir comentarios sobre esta librerÃa.


