2011-12-14 131 views
1

我使用phpflickr从Flickr中检索图像。 由于某些原因,photosets_getPhotos不包含图片说明,而必须使用photos_getInfo。但是,当我这样做时,会减慢一切。phpflickr - 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"; 
} 

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

+0

是网络速度慢或Flickr的响应速度很慢? – ajreal 2011-12-14 16:44:16

+0

它似乎只是getInfo导致问题的API调用。在谷歌搜索似乎有这个问题的几个,但我还没有找到一个解决方案,不幸的是。 – iltdev 2011-12-14 16:49:48

回答

1

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

作为一种替代方法,是否可以为照片编写更多描述性标题并显示标题字段而不是描述字段?

我已经离开这个作为一个评论,但我并没有得到在堆栈溢出这种特权又:(

1

你可以尝试启用缓存..

  1. 如果你需要提供一个PEAR :: DB连接字符串,例如:$ flickr-> enableCache(“db”,“mysql:// user:password @ server/database”) ; 第三个(可选)参数即将到期以秒为单位的缓存(默认为600)。第四个(可选)参数是要存储缓存的表。这默认为flickr_cache,并且如果它不存在,它将尝试创建表。

  2. 如果您使用文件系统缓存,则需要提供一个Web服务器具有写入权限的文件夹。例如:$ flickr-> enableCache(“fs”,“/ var/www/phpFlickrCache”);第三个(可选)参数与数据库缓存中的参数相同,缓存的过期时间(秒)。

source