CURLOPT de CURL
Aúnque el título parezca más bien un trabalenguas proviniente del mismísimo Chiquito de la Calzada, hoy voy a comentar algunas potentes opciones que nos brinda la biblioteca CURL.
Para mí CURL era un auténtico desconocido, cuando en el anterior host no tenia ni fopen para urls externas. Pero una vez lo conoces se convierte en una herramienta muy potente y útil.
Lo primero a realizar en nuestro código, es siempre la inicialización de curl, con la función curl_init()
-
$ch = curl_init();
Hecho esto tendremos en la variable $ch el identificador de nuestra sesión CURL. Ahora sólo nos tenemos que dedicar a marcarle nuestras preferencias para la conexión. Voy a mostraros a continuación las que me parecen más importantes, pero recordad que hay muchas más.
-
// Indicamos la URL a la que queremos acceder
-
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
-
// Si la conexión tarda más de 30 segundos, que no siga
-
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);
-
// Si la conexión falla, que lo haga de forma "silenciosa"
-
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
-
// Permitir que la conexión se redirija si le es indicado
-
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
-
// El resultado lo quiero almacenar en una variable, en lugar de que lo imprima por pantalla
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
-
// Voy a enviar contenido en forma de variables POST
-
curl_setopt($ch, CURLOPT_POST, 1);
-
// Estos son los campos POST, en forma de array asociativo
-
// Voy a finjir que tengo una serie de Cookies, incluida la de sesión
-
curl_setopt($ch, CURLOPT_COOKIE, ‘nombre=Alex; galleta=chocolate; PHPSESSID=0123456789qwertyasdfg9876543210′);
-
// Foy a finjir que provengo de otra web, la que yo quiera
-
curl_setopt($ch, CURLOPT_REFERER, ‘http://zumbe.net/’);
-
// Voy a indicar qué User Agent estoy usando. Por ejemplo el de un iPhone
-
curl_setopt($ch, CURLOPT_USERAGENT, ‘mozilla/5.0 (iphone; u; cpu like mac os x; en) applewebkit/420+ (khtml, like gecko) version/3.0 mobile/1c25 safari/419.3′);
Por último, ejecutamos la sesión, y cerramos la misma.
-
// Almaceno en la variable $resultado el codigo de la pagina
-
$resultado = curl_exec($ch);
-
// Se cierra el recurso CURL y se liberan los recursos del sistema
-
curl_close($ch);
Sólo con esas herramientas ya podemos hacer un proxy muy completo, que nos haga lo que nosotros queramos.
Ahora sólo es echarle imaginación, ingenio y paciencia.
15 comentarios | tags: Código, General