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!!

Habilitar tag “<"? en php (en vez de "<"?php)

Es una tonteria, pero a veces pensamos que php no interpreta y que no funciona. Probando probando te das cuenta de que si comienzas con el tag <?php si que va, pero con el tag <? no interpreta.  Y la version de php es la 5.3.x. Pues bien, por si a alguien le pasa, que sepais que en el php.ini hay una etiqueta short_open_tag que debe de estar a On en vez de a Off.

Vamos, una tonteria, pero ya sabemos por lo menos que ¡php funciona!