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’:

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:

En este caso vamos a realizar una búsqueda en google sobre el término ‘curl’.

Establecemos un tiempo máximo de respuesta:

Esta línea la veremos más abajo:

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:

En este caso no es necesario, pero lo he dejado como nota didáctica.

Finalmente hacemos la llamada:

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.

7 thoughts on “cURL y PHP: hacer una llamada a una página en segundo plano

  1. 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.

  2. Esta llamada no es en segundo plano, porque tu script tiene que esperar la respuesta de google para continuar.

    En segundo plano seria si lanzases un proceso que hiciera alguna tarea y que tu script no tuviera que esperar.

  3. Es verdad, aunque puede hacerse de una forma muy parecida a segundo plano usando AJAX. De todas formas muchas gracias, me salvaste la vida con esta librería xD.

    Saludos;

  4. Hola! He empezado hoy con cUrl, y estoy un poco perdida…
    mi problema creo que no es demasiado complicado, pero no soy capaz de sacarlo…
    Estoy trabajando con dos proyectos en dos servidores diferentes que se envian datos el uno al otro.
    En este caso lo que necesito es, desde uno de los servidores, llamar al otro (por medio de cUrl) y que me devuelva simplemente un entero (es un id) para poder meterlo en una variable y hacer lo que sea necesario… seria posible?
    He conseguido que me printe todo el contenido (que solo es un echo) pero no se como meterlo en una variable.. no se si me explico…
    Bueno espero que puedas ayudarme..
    Muchas gracias anticipadas!!

  5. Hola que buen aporte. Te agradeceria enormemente si me ayudas con el siguiente asunto ya que veo que manejas muy bien CURL

    Yo utilizo el siguiente metodo y me fuciona muy bien. Es para enviar una peticion via GET con CURL

    $command_val= urlencode(‘transactod..’);
    $username_val= urlencode(‘fred123′); ??? campo de texto de otro formulario que varia
    $amount_val = urlencode(’10’);

    $str= “?Command=”.$command_val.”&Username=”.$username_val.”&Amount=”.$amount_val;

    print $str;

    $ch=curl_init();
    curl_setopt($ch,CURLOPT_URL,’https://www.voipinfocenter.com/API/Request.ashx’.$str);
    curl_exec($ch);
    curl_close($ch);

    Pero lo que yo necesito es traer el valor de la variable $username es decir en este caso “fres123” o cualquier otro de un formulario en otra ubicacion por ejemplo formulario.php a esta ubicacion. es de un campo tipo texto que cambia dependiendo del valor que se elija.

    Las variables $command y $amount son constantes con los mismo valores pero el username varia. Todo esto lo envio mediante esta peticion via GET

    Como lo podria hacer?

    Agradesco mucho tu respuesta. Muchas Gracias

  6. Hola muchas gracias por tu post.
    tengo la siguiente pagina “https://declaraciones.sri.gob.ec/consultas-renta-internet/consultaDeudaNaturales.jsf”
    y necesito automatizar la cunsulta, hay que ingresar el numero de cedula por ejemplo 0701891145 pulsar el boton consutar y te devuelve el nombre.

  7. Estos aportes son exelentes para aprender Curl, me gustaria conocer como resuelve la consulta que hizo JuanMM
    gracias

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.