cURL y PHP: hacer una llamada a una página en segundo plano
Hace un par de dÃas os hablaba de cURL. Hoy vamos a ver un sencillo ejemplo con esta librerÃa.
En este ejemplo, vamos a conectarnos desde nuestro servidor con Google y vamos a pedirle que nos busque resultados que contengan la palabra ‘curl’:
<? if(function_exists('curl_init')) // Comprobamos si hay soporte para cURL { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.google.es/search?hl=es&q=curl"); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $resultado = curl_exec ($ch); print_r($resultado); } else echo "No hay soporte para cURL"; ?>
Lo primero que debemos hacer es iniciar la sesión cURL:
$ch = curl_init();
esto nos devuelve un “manejador” $ch que identifica a la sesión cURL recién creada.
Ahora vamos a indicarle cuál es la URL a la que nos queremos conectar:
curl_setopt($ch, CURLOPT_URL, "http://www.google.es/search?hl=es&q=curl");
En este caso vamos a realizar una búsqueda en google sobre el término ‘curl’.
Establecemos un tiempo máximo de respuesta:
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
Esta lÃnea la veremos más abajo:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
Si en el servidor al que nos conectamos hubiese alguna redirección (código 302) y nos interesa seguirla entonces debemos decÃrselo a cURL:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
En este caso no es necesario, pero lo he dejado como nota didáctica.
Finalmente hacemos la llamada:
$resultado = curl_exec ($ch);
Como hemos establecido el parámetro CURLOPT_RETURNTRANSFER, curl_exec va a devolver la respuesta del servidor y la va a almacenar en la variable $resultado. Si no hubiésemos establecido ese parámetro curl_exec hubiese devuelto verdadero o falso dependiendo de si la operación se ha realizado con éxito.
Este es un ejemplo muy sencillo sin valor más allá del didáctico, pero puede tener muchas aplicaciones. Por ejemplo se puede usar en pasarelas de pago como PayPal para hacer una llamada en segundo plano al servidor.



Enero 4th, 2009 at 9:06 am
Mi pregunta es si con curl podemos, por ejemplo solo extraer el valor de una caja de texto o de una columna y mostrar la en una caja de texto de mi pagina web.