Foros del Web » Programando para Internet » PHP »

Feeds en servidores que no permiten fopen

Estas en el tema de Feeds en servidores que no permiten fopen en el foro de PHP en Foros del Web. Hola a todos! Tenía tiempo que no posteaba algo en este foro Bueno, voy al grano: resulta que estoy trabajando con los API's de YouTube ...
  #1 (permalink)  
Antiguo 13/11/2007, 19:43
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 20 años, 11 meses
Puntos: 5
Pregunta Feeds en servidores que no permiten fopen

Hola a todos!
Tenía tiempo que no posteaba algo en este foro

Bueno, voy al grano: resulta que estoy trabajando con los API's de YouTube para obtener los videos de X usuario y los comentarios de X video. Todo esto ya lo tengo y funciona PERFECTAMENTE localmente; el problema está cuando lo subo a mi hosting y cuando contacté al proveedor, me informa que lo que tenga que ver con "fopen" está bloqueado por seguridad , he probado en otros hostings (el de mi trabajo y el de un amigo) y funciona PERFECTAMENTE

He insistido y nada que me lo habilitan, he probado usando .htaccess y nada tampoco (mi hosting soporta htaccess).

Les dejo el ejemplo de como obtener el feed (xml) del usuario "google" en YouTube:

Código PHP:
function read_url$url$proxy null$port null) {
    
$content '';
    
    if (empty(
$proxy) ) {
        
// Open URL directly
        
$fp fopen ($url'r');
        if (!
$fp) {
            return 
false;
        }
        while(!
feof($fp)) {
            
$content $content fread($fp,4096);
        }
        
fclose($fp);
    
    } else {
        
// Open proxy
        
$fp fsockopen($proxy$port);
        if (!
$fp) {
            return 
false;
        }
        
// Invoke URL via proxy
        
fputs($fp"GET $url HTTP/1.0\r\nHost: $proxy\r\n\r\n");
        while(!
feof($fp)) {
            
$content $content fread($fp,4096);
        }
        
fclose($fp);
        
// Strip headers
        
$content substr($contentstrpos($content,"\r\n\r\n")+4);
    }
    
    return 
$content;
}

echo(
read_url('http://gdata.youtube.com/feeds/users/google/uploads')); 
Esta función fue la ultima que encontré que hace lo que quiero ya que tiene algo peculiar que no he podido entender bien aún. Esta función "simula" a un fopen (según la fuente de donde la saqué) pero utilizando "proxy". Si alguien pudiese ayudarme en:
  1. Cómo hacer para que los feeds de youtube funcionen en mi hosting teniendo en cuenta que todo lo parecido a fopen está deshabilitado??
  2. Cómo hago para poder probar esta función utilizando "proxy" y su "puerto"??
Si tienen alguna idea para solucionar esto, se los agradeceré ETERNAMENTE!!, ah, se me olvidaba, donaré el código fuente de esto para aquel que le interese interactuar con los videos de YouTube, claro está, si logramos desifrar este misterio... espero sea suficiente

Bueno, espero sus comentarios, sugerencias y aportes para esto!

Saludos

pd. el resultado que devuelve esta función lo trabajo con una clase para manejar XML (todo esto funciona perfectamente, el problema es lo de arriba mencionado).
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.

Última edición por Saruman; 13/11/2007 a las 21:56
  #2 (permalink)  
Antiguo 13/11/2007, 21:36
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: Feeds en servidores que no permiten fopen

que buen trueque!!!
__________________
Nuevamente a las pistas ...
  #3 (permalink)  
Antiguo 13/11/2007, 22:42
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Feeds en servidores que no permiten fopen

Qué tal con CURL?

Código PHP:
$url 'http://www.midominio.com/ruta/fichero.html'//Aquí la URL que se quiera, claro.
$ch curl_init($url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$contenido curl_exec($ch); 
  #4 (permalink)  
Antiguo 13/11/2007, 23:10
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: Feeds en servidores que no permiten fopen

Gracias por responder.
Lo probé y no funciona. Hice un phpinfo() y mi server si soporta curl.
Hice otra prueba colocando este feed:

http://gdata.youtube.com/feeds/video...sqY3g/comments

donde me trae los comentarios de un video y con ese si funciona.... al colocarle:

http://gdata.youtube.com/feeds/users/google/uploads

no me trae nada... no manda error ni nada (le coloque error_reporting(E_ALL); para que me trajese algo si en tal caso no lo mostrara y nada).

que puede pasar que con uno si funciona y con otro no??

Gracias de antemano
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #5 (permalink)  
Antiguo 13/11/2007, 23:18
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Feeds en servidores que no permiten fopen

Pues no sé que decirte...
Parece que las url's no se reescriben, pero por si acaso pon esto antes de la llamada a la función curl_exec:

curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);

Llama a
curl_error después del curl_exec, para ver qué error hay...
Código PHP:
$error curl_error($ch);
echo 
$error
  #6 (permalink)  
Antiguo 13/11/2007, 23:33
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: Feeds en servidores que no permiten fopen

Gracias de Nuevo!.
No, tampoco funcionó con eso.

miren esto: con estos si funciona perfectamente:

http://gdata.youtube.com/feeds/users/google/playlists
http://gdata.youtube.com/feeds/video...itj_o/comments
http://gdata.youtube.com/feeds/video...lJK0/responses

pero con estos no:

http://gdata.youtube.com/feeds/users/google/uploads
http://gdata.youtube.com/feeds/videos?author=google
http://gdata.youtube.com/feeds/users/google/favorites

he estado haciendo pruebas y bueno, los q no funcionan para mi son los más importantes.

la documentación está en: http://code.google.com/apis/youtube/..._protocol.html

será algún problema con el xml q está generando youtube?? pero lo raro es q en otros servidores si me funciona.... ayudenme por favor, desde el domingo 4 de noviembre estoy investigando y nada. Ya puse la queja en el forum de youtube y no me dan una respuesta....

Gracias a todos por leer esto.

Saludos
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #7 (permalink)  
Antiguo 13/11/2007, 23:35
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: Feeds en servidores que no permiten fopen

Cita:
Iniciado por Lanselot Ver Mensaje
Llama a
curl_error después del curl_exec, para ver qué error hay...
Código PHP:
$error curl_error($ch);
echo 
$error
increíble, pero no sale ningún error... estará todo bien entonces?? pero... porque no muestra nada?
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #8 (permalink)  
Antiguo 13/11/2007, 23:35
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Feeds en servidores que no permiten fopen

Mmmm, pues vaya, si averiguo algo ya te lo comentaré
  #9 (permalink)  
Antiguo 13/11/2007, 23:38
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: Feeds en servidores que no permiten fopen

Cita:
Iniciado por Lanselot Ver Mensaje
Mmmm, pues vaya, si averiguo algo ya te lo comentaré
OK perfecto, gracias por la ayuda, fue muy valiosa!

Están todos cordialmente invitados a participar y dar sus sugerencias
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #10 (permalink)  
Antiguo 13/11/2007, 23:49
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Feeds en servidores que no permiten fopen

Acabo de probar en mi servidor local y me funciona perfectamente con la url
http://gdata.youtube.com/feeds/users/google/uploads

Edito: las url's que no te funcionan tienen una mayor longitud de código que las que sí te funcionan... no creo que sea casualidad

Última edición por Lanselot; 13/11/2007 a las 23:52 Razón: Añadir información
  #11 (permalink)  
Antiguo 14/11/2007, 00:07
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: Feeds en servidores que no permiten fopen

Cita:
Iniciado por Lanselot Ver Mensaje
Acabo de probar en mi servidor local y me funciona perfectamente con la url
http://gdata.youtube.com/feeds/users/google/uploads

Edito: las url's que no te funcionan tienen una mayor longitud de código que las que sí te funcionan... no creo que sea casualidad
Si, localmente también me funciona y en otro servidor web como mencioné en el primer post.
No se si la longitud tenga algo que ver... pero quien sabe no?

Gracias de nuevo.
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #12 (permalink)  
Antiguo 14/11/2007, 00:26
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Feeds en servidores que no permiten fopen

Todo esto es muy raro... que no devuelva error el curl_error...

Lo último que se me ocurre, si estás en linux, es llamar a wget a través de la función exec() y luego leer el fichero descargado...
  #13 (permalink)  
Antiguo 14/11/2007, 00:45
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: Feeds en servidores que no permiten fopen

me podrías ilustrar con un ejemplo? (si estoy en linux).
porque como mencionas, podemos generar el file.xml y luego mi clase xml leería un archivo local y ahí si no hay problemas, porque ya lo probé asi y si funciona.... asi que hagamos la prueba a ver... te agradecería un ejemplo para probarlo.

Sería mañana porque ya es tarde. Lo reviso a primera hora en un par de horas (valga la redundancia).

Saludos y gracias!
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #14 (permalink)  
Antiguo 14/11/2007, 08:09
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Feeds en servidores que no permiten fopen

Código PHP:
exec('wget -O /home/directorio/feedtmp.txt http://miweb.com/feeds/videos');
$archivo fopen('/home/directorio/feedtmp.txt','r');
... 
Algo así... faltaría añadir comprobación de errores claro.
  #15 (permalink)  
Antiguo 14/11/2007, 08:51
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: Feeds en servidores que no permiten fopen

Hola.
con exec no me funciona tampoco...

alguna otra sugerencia?
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #16 (permalink)  
Antiguo 14/11/2007, 08:56
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Feeds en servidores que no permiten fopen

Pues a menos que alguien tenga otra idea, cambiar de hosting por uno que funcione bien...

Lo siento.
  #17 (permalink)  
Antiguo 14/11/2007, 11:13
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: Feeds en servidores que no permiten fopen

Hay alguien que conosca de este asunto que me pueda asistir o ayudar????
Por favor, es muy muy importante.

Gracias!!
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #18 (permalink)  
Antiguo 14/11/2007, 16:06
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: Feeds en servidores que no permiten fopen

Otra persona que me pueda ayudar en esto por favor....?
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:26.