Llamada a url con parámetros mediante curl

Resulta que haciendo un Cron para se ejecute una url cada cierto tiempo nos hemos encontrado con que al hacer “curl http://mi-url-con-parametros?p1=1&p2=2” no funciona bien porque parece que hay que escapar el carácter “&“.

Pues no. No es eso.

Lo que tenemos que hacer es utilizar el parámetro -d de curl para indicar los parámetros. (valga la redundancia).

Así pues, la instrucción anterior la podéis probar como:

/usr/bin/curl -d “p1=1&p2=2” http://mi-url-con-parametros/

Otro ejemplo:

/usr/bin/curl -d “option=com_ejemplo&view=ajax&no_html=1&task=one_task” http://www.midominio.com/index.php

Espero que os ayude. xD

Recoger el contenido de una URL en PHP

Hacer una petición a una url y recoger el contenido que devuelve ya sea html, xml, json o lo que sea, es una tarea muy recurrente en el desarrollo web.

En php esto lo podemos hacer al menos de 3 formas diferentes.
Dependiendo del servidor de hosting algunas alternativas funcionan y otras no.

Básicamente estas 3 formas de hacerlo son:

1. La función estándar de ‘filesystem’ “file_get_contents()”

$page = file_get_contents('http://www.url.com/pagina.ext');

2. Las extensiones cURL

$c = curl_init('http://www.url.com/pagina.ext');
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($c);
curl_close($c);

3. La clase de PEAR “HTTP_Request”

require_once 'HTTP/Request.php';
$r = new HTTP_Request('http://www.url.com/pagina.ext');
$r->sendRequest();
$page = $r->getResponseBody();

Evidentemente el file_get_contents es lo más sencillo, pero en muchos casos nos encontramos que en el servidor está deshabilitado.

Tenéis información mucho más completa y extendida con más casos en la fuente: http://smultron.es/2011/02/descargar-paginas-web-usando-php-curl-file_get_contents/

microSaludos!!