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 нет других вызовов для получения описания.
В качестве альтернативы, не могли бы вы написать более описательные заголовки для ваших фотографий и отобразить поле "Заголовок" вместо поля "Описание"?
Я бы оставил это как комментарий, но я еще не получил эту привилегию в переполнении стека:(
Вы можете попробовать включить кэширование.
Если вы используете кэширование базы данных, вам нужно указать строку подключения PEAR::DB. Например: $ flickr-> enableCache ("db", "mysql: // user: password @ server / database"); Третий (необязательный) аргумент - срок действия кэша в секундах (по умолчанию 600). Четвертый (необязательный) аргумент - это таблица, в которой вы хотите хранить кеш. По умолчанию используется flickr_cache и будет пытаться создать таблицу, если она еще не существует.
Если вы используете кеширование файловой системы, вам необходимо указать папку, в которой веб-сервер имеет доступ для записи. Например: $ flickr-> enableCache ("fs", "/ var / www / phpFlickrCache"); Третий (необязательный) аргумент, такой же, как в кешировании базы данных, истекает в секундах для кеша.