Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/11/2007, 19:43
Avatar de Saruman
Saruman
 
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
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