1

I'm using phpflickr to retrieve images from Flickr. For some reason photosets_getPhotos doesn't contain the image descriptions and photos_getInfo has to be used instead. However, when I do it slows everything right down.

Here is a function I've made to retrieve an image set and display it in a prettyPhoto list.

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";
}

Is there a way I can speed things up or an alternative method for getting the image descriptions?

4

2 に答える 2

1

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

別の方法として、写真にわかりやすいタイトルを付けて、[説明] フィールドの代わりに [タイトル] フィールドを表示することはできますか?

これをコメントとして残しておきますが、スタックオーバーフローでまだその権限を取得していません:(

于 2012-01-09T16:05:09.673 に答える
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 番目 (オプション) の引数は、データベース キャッシングと同様に、キャッシュの有効期限 (秒単位) です。

ソース

于 2013-08-26T12:38:45.677 に答える