2011-01-11 12 views
4

Ich habe mit diesem seit Stunden gekämpft und ich habe keine Ahnung, warum nicht funktioniert. Ich brauche Informationen von einem VideoID mit YouTube API und Zend zu bekommen, so habe ich eine Funktion wie dieseGet Youtube VideoID Details im Array

function listYoutubeVideo($id) { 
$videos = array(); 

try { 
    $yt = new Zend_Gdata_YouTube(); 


    $videoFeed = $yt->getVideoEntry($id); 
    foreach ($videoFeed as $videoEntry) { 
     $videoThumbnails = $videoEntry->getVideoThumbnails(); 
     $videos[] = array(
      'thumbnail' => $videoThumbnails[0]['url'], 
      'title' => $videoEntry->getVideoTitle(), 
      'description' => $videoEntry->getVideoDescription(), 
      'tags' => implode(', ', $videoEntry->getVideoTags()), 
      'url' => $videoEntry->getVideoWatchPageUrl(), 
      'flash' => $videoEntry->getFlashPlayerUrl(), 
      'dura' => $videoEntry->getVideoDuration(), 
      'id' => $videoEntry->getVideoId() 
     ); 
    } 
} catch (Exception $e) { 
} 

return $videos; 
} 

Der Grund, im es mit einem Array zu tun und eine Funktion ist, weil ich die Funktion will zwischenzuspeichern.

Ich habe keine Ahnung, was ist falsch mit dem Code, ich benutze genau das gleiche nur Ändern von getVideoEntry für andere Arten von Feeds und es funktioniert.

+0

Sie ignorieren stillschweigend jede mögliche Ausnahme, aus der Sicht dieses Codes. Warum? Das wäre der erste Ort, an dem ich nach möglichen Hinweisen suchen würde. –

+0

Haben Sie error_reporting auf einen anständigen Level (E_ALL) gesetzt und werden diese angezeigt (oder protokolliert)? –

+0

Fehlermeldung ist an und ich bekomme keine Fehler, nur leere Arrays. – Peibol

Antwort

3

Ich habe Ihren Code dupliziert und ausgeführt. Jetzt scheint "getVideoEntry" die Daten eines einzelnen Videos zurückzugeben, aber aus irgendeinem Grund erwartet man, dass es sich um eine Sammlung handelt. Wenn Sie zwischenspeichern, möchten Sie möglicherweise eine Überprüfung auf eine leere Datenrückgabe erstellen.

Hier einige überarbeitete Code, der perfekt für mich gearbeitet:

function listYoutubeVideo($id) { 
    $video = array(); 

    try { 
     $yt = new Zend_Gdata_YouTube(); 

     $videoEntry = $yt->getVideoEntry($id); 

      $videoThumbnails = $videoEntry->getVideoThumbnails(); 
      $video = array(
       'thumbnail' => $videoThumbnails[0]['url'], 
       'title' => $videoEntry->getVideoTitle(), 
       'description' => $videoEntry->getVideoDescription(), 
       'tags' => implode(', ', $videoEntry->getVideoTags()), 
       'url' => $videoEntry->getVideoWatchPageUrl(), 
       'flash' => $videoEntry->getFlashPlayerUrl(), 
       'dura' => $videoEntry->getVideoDuration(), 
       'id' => $videoEntry->getVideoId() 
      ); 

    } catch (Exception $e) { 
     /* 
     echo $e->getMessage(); 
     exit(); 
     */ 
    } 

    return $video; 
} 
Verwandte Themen