gafeman viciao2k3 logo viciao2k3
 
cagando...
 
 

Maneras de leer el contenido de una url con php

Publicado en PHP el dia 7 Septiembre, 2008   718 lecturas  y  5 comentarios

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:
  1. $contenido_url = file_get_contents($url);

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:
  1. $ch = curl_init($url);
  2. $contenido_url =  curl_exec($ch);
  3. curl_close($ch);

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:
  1. $contenido_url = '';
  2. $file = @fopen($url, 'r');
  3. if($file){
  4. while(!feof($file)) {
  5. $contenido_url .= @fgets($file, 4096);
  6. }
  7. fclose ($file);
  8. }

Compartir   twitter   del.icio.us   webeame   meneame   stumbleupon   mr.wong   ?


▶ Ver 0 pings y 0 trackbacks
No hay pingbacks

No hay trackbacks


5 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


0-0

Código de conducta


Cualquier comentario que no cumpla una de las condiciones,
sera borrado sin previo aviso:
  1. Ser persona
  2. No insultar (A eso se le llama Trolear)
  3. No escribir el texto en mayusculas (Es lo mismo que gritar)
  4. No Spamear (ej. hablar de lo que comiste ayer...)
  5. Evitar comentarios del tipo soy primero, soy segundo, hijo de puta...
  6. Escribir el comentario en castellano
  7. Saber el día de la semana que naciste
  8. No deshonrar la ortografia del administrador

La sole

¡Participa en la discusión!