Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    154

    [PHP] simplexml_load_file() errore con API Youtube

    Ciao a tutti,

    stavo cercando di implementare un motore di ricerca Youtube su un sito. Così sto usando le API. Tuttavia segnala questo errore durante il caricamento:

    codice:
    Warning: simplexml_load_file(http://gdata.youtube.com/feeds/api/videos?vq=ciao) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /ricerca_youtube.php on line 25 
    
    Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://gdata.youtube.com/feeds/api/videos?vq=ciao" in /ricerca_youtube.php on line 25 Fatal error: Call to a member function children() on a non-object in /ricerca_youtube.php  on line 28
    Avete qualche idea su come potrei risolvere?

    Grazie
    Mess with the best die like the rest.

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Ottieni un errore 403, quindi l'accesso non è consentito. Forse hanno bloccato il tuo IP. Puoi provarlo da un altro?

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    154
    Non credo proprio che mi abbiano bloccato l'IP. Parliamo delle API di youtube..

    Comunque andando solo su http://gdata.youtube.com/feeds/api/videos?vq=ciao riesco a visualizzare il codice in XML senza problemi.

    Comunque alcune volte funziona, non riesco a capire da cosa dipenda..
    Mess with the best die like the rest.

  4. #4
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Andando col browser dallo stesso IP?

    Forse è una questione di user agent (si imposta tramite http://php.net/manual/en/filesystem....ini.user-agent). Posta il codice.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    154
    Ora che mi ci fai pensare stavo caricando la pagina dal mio pc mentre la pagina è hostata in un server remoto. Potrebbe essere qualche configurazione del server?

    Codice PHP:
    <?php

      
    // recupero la query, elimino gli spazi bianche e faccio l'urlencode
      
    $q $_GET['q'];


    $feedURL "http://gdata.youtube.com/feeds/api/videos?vq={$q}";
       

    $sxml simplexml_load_file($feedURL);
       



    echo 
    "<table border='0'>";


    foreach (
    $sxml->entry as $entry) {

      
    $media $entry->children('http://search.yahoo.com/mrss/');
            

      
    $attrs $media->group->player->attributes();
      
    $watch $attrs['url']; 
      
    $attrs $media->group->thumbnail[1]->attributes();
      
    $thumbnail substr($attrs['url'], 0,-5)."default.jpg";
            
      
    // durata <yt:duration>
      
    $yt $media->children('http://gdata.youtube.com/schemas/2007');
      
    $attrs $yt->duration->attributes();
      
    $length $attrs['seconds']; 
      
      
    // numero di visualizzazioni <yt:stats>
      
    $yt $entry->children('http://gdata.youtube.com/schemas/2007');
      
    $attrs $yt->statistics->attributes();
      
    $viewCount $attrs['viewCount']; 
          
      
    // rating <gd:rating>
      
    $gd $entry->children('http://schemas.google.com/g/2005'); 
      if (
    $gd->rating) {
        
    $attrs $gd->rating->attributes();
        
    $rating round($attrs['average'],2); 
      }else{
        
    $rating 0
      }
              
          echo 
    "<tr>
      <td>
      </td>
      <td>
      <center>
      <a href=\"
    {$watch}\">{$media->group->title}</a>
    sprintf("%0.2f"$length/60) . " min. | {$viewCount} views
      </center>
      </tr>
      <tr>
      <td class=\"tdimg\">
      <a href=\"
    {$watch}\">
      <img src=\"
    {$thumbnail}\"/>
      </a>
      </td>
      <td>
      <div id='descrizione_video'>
      
    {$media->group->description}
      </div>
      </td>
      </tr></br></br>"
    ;  
         
      
    }
    echo 
    "</table>";

    ?>
    Mess with the best die like the rest.

  6. #6
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Potrebbe essere l'IP

    Prova il user agent ma io penso quasi che sia l'IP

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  7. #7
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Vedo anche nella risposta che si riferisce a HTTP/1.0 mentre ho visto che normalmente restituisce HTTP/1.1

    Forse prova anche giocare un po con le impostazioni di http://php.net/manual/en/context.http.php

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    154
    Sì ma certe volte me li carica!

    Comunque che intendi per user_agent ? In php.ini ho trovato questi parametri che potrebbero essere utili:

    codice:
    user_agent="PHP"
    allow_url_fopen = On
    Non c'è però il parametro "allow_url_include"
    Mess with the best die like the rest.

  9. #9
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Non importa in questo caso.

    Se succeda solo a volte potrebbe essere che sovracarichi il server e ti blocca poi l'IP o che l'URL non sia valido (per questo prova questo codice)
    Codice PHP:
    $feedURL 'http://gdata.youtube.com/feeds/api/videos?vq='.rawurlencode($q); 
    oppure è davvero il user agent (forse non gli piace PHP, prova uno "normale" - cerca su Google)


    E' tutto un grande forse però

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    154
    Non vorrei parlare troppo presto ma sembrerebbe risolto.

    Ho aggiunto a php.ini il parametro che mancava e trasformato

    codice:
    $sxml = simplexml_load_file($feedURL);
    in

    codice:
    $sxml = new SimpleXMLElement(file_get_contents($feedURL));
    Mess with the best die like the rest.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.