1

我正在使用 phpflickr 从 Flickr 检索图像。由于某种原因,photosets_getPhotos 不包含图像描述,而必须使用 photos_getInfo。但是,当我这样做时,它会减慢一切。

这是我为检索图像集并将其显示在 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";
}

有没有一种方法可以加快速度或获取图像描述的替代方法?

4

2 回答 2

1

不幸的是,API 没有任何其他调用来获取描述。

作为替代方案,您能否为照片编写更具描述性的标题并显示标题字段而不是描述字段?

我会将此作为评论留下,但我还没有在 Stack Overflow 中获得该特权:(

于 2012-01-09T16:05:09.673 回答
1

您可以尝试启用缓存..

  1. 如果您使用数据库缓存,则需要提供 PEAR::DB 连接字符串。例如:$flickr->enableCache("db", "mysql://user:password@server/database") ; 第三个(可选)参数是以秒为单位的缓存过期时间(默认为 600)。第四个(可选)参数是要存储缓存的表。这默认为 flickr_cache,如果该表不存在,将尝试创建该表。

  2. 如果您使用文件系统缓存,则需要提供一个文件夹,Web 服务器可以在该文件夹中进行写访问。例如:$flickr->enableCache("fs", "/var/www/phpFlickrCache") ; 第三个(可选)参数与数据库缓存中的相同,是缓存的过期时间(以秒为单位)。

来源

于 2013-08-26T12:38:45.677 回答