phpflickr - photos_getInfo очень медленный - PullRequest
1 голос
/ 14 декабря 2011

Я использую phpflickr для извлечения изображений из Flickr. По некоторым причинам photosets_getPhotos не содержит описания изображений, и вместо этого следует использовать photos_getInfo. Однако, когда я это делаю, все замедляется.

Вот функция, которую я сделал, чтобы получить набор изображений и отобразить его в списке prettyPhoto.

<code>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."
\ ">" . "image " . "" . " \ п"; } echo " \ n"; }

Есть ли способ ускорить процесс или альтернативный способ получения описаний изображений?

Ответы [ 2 ]

1 голос
/ 26 августа 2013

Вы можете попробовать включить кэширование ..

  1. Если вы используете кэширование базы данных, вам нужно будет указать строку подключения PEAR :: DB.Например: $ flickr-> enableCache ("дБ", "mysql: // пользователь: пароль @ сервер / база данных") ;Третий (необязательный) аргумент - срок действия кэша в секундах (по умолчанию 600).Четвертый (необязательный) аргумент - это таблица, в которой вы хотите хранить кеш.По умолчанию используется flickr_cache и будет пытаться создать таблицу, если она еще не существует.

  2. Если вы используете кеширование файловой системы, вам потребуется указать папку, в которой находится веб-сервер.имеет доступ для записи.Например: $ flickr-> enableCache ("fs", "/ var / www / phpFlickrCache") ;Третий (необязательный) аргумент, такой же, как в кешировании базы данных, истекает в секундах для кеша.

source

1 голос
/ 09 января 2012

К сожалению, у API нет других вызовов для получения описания.

В качестве альтернативы, не могли бы вы написать более описательные заголовки для ваших фотографий и отобразить поле заголовка вместо поля описания?

Я бы оставил это как комментарий, но я еще не получил эту привилегию в переполнении стека: (

...