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:
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.
Tags:
curl,
php,
programacion