2011-12-14 4 views
1

私はFlickrから画像を取得するのにphpflickrを使用しています。 何らかの理由で、photosets_getPhotosにイメージの説明が含まれていないため、代わりにphotos_getInfoを使用する必要があります。しかし、私がそうすると、すべてが遅くなる。phpflickr - photos_getInfo very slow

ここでは、イメージセットを取得してprettyPhotoリストに表示するための機能を示します。

function flickrGallery($setId,$ulClass,$prettyPhotoGroup){ 

    $f = new phpFlickr('KEY','SECRET',false); // API 
    $user = "USERID"; 

    $photoset_id = $setId; 
    $photos = $f->photosets_getPhotos($photoset_id); 

    echo "<ul class=\"$ulClass\">\n"; 

    foreach ($photos['photoset']['photo'] as $photo){ 
     $getInfo = $f->photos_getInfo($photo['id']); 
     $description = $getInfo['photo']['description']; 

     $urlOrig = $f->buildPhotoURL($photo, "small"); 
     $urlHex = strToHex($urlOrig); 
     $fullsize = $f->buildPhotoURL($photo, "large"); 

     echo "<li>" 
      ."<a href=\"$fullsize\" rel=\"prettyPhoto[$prettyPhotoGroup]\" title=\"".$description."</pre>\">" 
      ."<img src=\"/thumb/external$urlHex/120/86\" width=\"120\" height=\"80\" class=\"borderoff\" alt=\"".$photo['title']."\" />" 
      ."</a>" 
      ."</li>\n"; 
    } 

    echo "</ul>\n"; 
} 

イメージの説明を取得する方法や、別の方法がありますか?

+0

ネットワークが遅いですかFlickrの応答が遅いですか? – ajreal

+0

それは問題を引き起こしているgetInfoへのAPI呼び出しのようです。 Googleで検索すると、この問題がいくつかあるようですが、残念なことに解決策が見つかりませんでした。 – iltdev

答えて

1

残念ながら、APIには説明を取得するための他の呼び出しはありません。

代わりに、写真の説明的なタイトルを記述し、説明フィールドの代わりにタイトルフィールドを表示できますか?

私はコメントとしてこれを残してきただろうが、私はまだスタックオーバーフローでその特権を得ていない:(

+0

乾杯。良い回避策。 Flickrはあなたが必要な情報を得るためにその場に行っているようです。私はこのための技術的な理由があると確信していますが、それはすべてをダウンさせる半分ではありません!キャッシングとCronの仕事は私の最高の選択肢のように見えます。 – iltdev

1

あなたはキャッシュを有効に試すことができます。..

  1. 場合データベースキャッシングを使用している場合、PEAR :: DB接続文字列を指定する必要があります。$ flickr-> enableCache( "db"、 "mysql:// user:password @ server/database") ; 3番目(オプション)の引数は有効期限です(デフォルトは600)。 4番目の引数(オプション)は、キャッシュを格納するテーブルです。これはデフォルトでflickr_cacheになり、テーブルが存在しない場合は作成されます。

  2. ファイルシステムのキャッシュを使用している場合は、Webサーバーに書き込みアクセス権があるフォルダを指定する必要があります。例:$ flickr-> enableCache( "fs"、 "/ var/www/phpFlickrCache"); 3番目の(オプションの)引数は、データベースのキャッシュと同じで、キャッシュの有効期限(秒)です。

source