phpflickr - photos_getInfo очень медленный

Я использую 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";
}

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

2 ответа

Решение

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

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

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

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

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

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

источник

Другие вопросы по тегам