Fork me on GitHub

Miquel Camps Orteza

Soy programador web. Estoy especializado en desarrollo web (php, js). Estoy aprendiendo a desarrollar apps para iphone/ipad.
Organizo betabeers en Madrid.
Sobre mí     Metas     Hacks     Contactar     LinkedIn     Twitter    
Inicio

Maneras de leer el contenido de una url con php

A la hora de trabajar con APIs o hacer web scraping es necesario acceder a información exterior a nuestro servidor, pongo aquí todas las maneras que conozco para hacerlo con PHP:

file_get_contents

Función disponible a partir de la versión PHP 4.3.0, casi siempre uso esta es la más corta jeje

[php]$contenido_url = file_get_contents($url);[/php]

CURL

Para poder usar la extensión CURL es necesario tenerlo instalado en el servidor, esta disponible en algunos servidores compartidos como por ejemplo servage.

En algunas APIs como por ejemplo la de twitter se tiene que hacer con CURL para poder iniciar la sesión y obtener la información deseada.

[php]$ch = curl_init($url);
$contenido_url = curl_exec($ch);
curl_close($ch);[/php]

fopen

Disponible a partir de la versión PHP 4, sólo funciona si la opción allow_url_fopen esta activada en el fichero de configuración php.ini.

Quizás esta sea la manera más lenta de todas pero es la que normalmente está disponible en la mayoria de servidores compartidos y dedicados.

[php]$contenido_url = ”;
$file = @fopen($url, ‘r’);
if($file){
while(!feof($file)) {
$contenido_url .= @fgets($file, 4096);
}
fclose ($file);
}[/php]

septiembre 7, 2008
Sigueme en twitter Suscribete por RSS Suscribete por email
Temas relacionados
Deja un comentario







Comentarios
  1. Alex Barros

    No hace falta jugar con los búferes de salida cuando trabajas con CURL. Yo lo hago siempre siguiendo este esquema. (no es SPAM, es poliSPAN)


  2. adRy0ne

    entonces hay que sustituir
    $contenido_url = file_get_contents($url);
    por:
    $ch = curl_init($url);
    $contenido_url = curl_exec($ch);
    curl_close($ch);

    no?


  3. gafeman

    @Alex Barros: gracias! no lo sabia :D

    @adRy0ne: exacto y si te falla usa el fopen

    aisss tienes que ser un poco cuidadoso al copiar pegar que metes mucha paja en el comentario, te lo he editado pero la proxima desenfundo mi mechero


  4. adRy0ne

    @gafeman: okaa, thanks, ahora pruebo. Eeeh, esque tenía prisa jeje


  5. adRy0ne

    ya va ;D


  6. Empresas de Bolivia

    Kapo me salvaste la vida. Justo me habian deshabilitado “allow_url_fopen” y me funciono el codigo mediante CURL. Gracias!!!