0

Zend Youtube API を使用しています。フィードのクエリを実行すると、合計 886 のエントリがあることが報告されますが、すべてのフィードを取得して反復すると、実際の数は 782 のようになります。

実際に不一致がありますか、それとも私のコードに見落としたばかげたエラーがありますか?

スニペット (debug() は便利なレポート機能です):

$query = $yt->newVideoQuery($queryUrl);
$query->setMaxResults(50); //Max allowed, to reduce API hits
$feeds = array();
try {
  $feed = $yt->getVideoFeed($query);
  $totalResults = $feed->getTotalResults(); //For debug
  $feeds[] = $feed;
  $totalFromFeeds = sizeof($feed); //For debug
  while ($feed = $feed->getNextFeed()) {
    $feeds[] = $feed;
    $totalFromFeeds += sizeof($feed); //For debug
  }
} catch (Zend_Gdata_App_Exception $e) {
  debug("$e"); //For debug
  //Just means no more feeds; do nothing
}
$numFeeds = sizeof($feeds); //For debug

$entries = array();
foreach ($feeds as $feed) {
  foreach ($feed as $entry) {
    $entries[] = $entry;
  }
}
$numEntries = sizeof($entries); //For debug
debug("According to feed, [$totalResults]; sizeof entries = [$numEntries] 
Num Feeds: $numFeeds;   totalfromfeeds: $totalFromFeeds");

デバッグからの出力:

exception 'Zend_Gdata_App_Exception' with message 'No link to next set of results found.
According to feed, [886]; sizeof entries = [782] 
Num Feeds: 16;   totalfromfeeds: 782

ご指摘ありがとうございます。

クリス

4

1 に答える 1

1

<openSearch:totalResults> の値は単なる見積もりです。詳細については、ドキュメントを参照してください: https://developers.google.com/youtube/2.0/reference#Total_Result_Counts

于 2012-09-21T13:31:02.763 に答える