Хорошо, вот моя дилемма:
Я прочитал все о том, сколько парней хотят иметь возможность отображать набор изображений из Flickr с помощью PHPFlickr, но сетовать на то, что API для PhotoSets не делаетвыложите индивидуальные фото описания.Некоторые пытались настроить свой PHP, поэтому он будет тянуть описание на каждой фотографии, когда скрипт собирает галерею на странице.Однако метод показал, насколько медленным и неэффективным он может быть.
В другом месте я нашел идею создать строку значений, разделенных запятыми, с идентификатором фотографии и описанием.Я сохранял это в базе данных MySQL и затем вызывал его, когда мой скрипт собирал галерею на странице.Я бы использовал explode для создания массива идентификатора фотографии и его описания, а затем вызывал бы его, чтобы заполнить пробелы ... таким образом, меньше вызовов API и более быстрая страница.
Так что в бэк-эндеadmin, у меня есть форма, в которой я настраиваю информацию для галереи, и я вручаю Set ID.Затем сценарий прошел бы и создал эту строку разделенных значений («| ~ |» как разделение).Вот что я придумал:
include("phpFlickr.php");
$f = new phpFlickr("< api >");
$descArray = "";
// This will create an Array of Photo ID from the Set ID.
// $setFeed is the set ID brought in from the form.
$photos = $f->photosets_getPhotos($setFeed);
foreach ($photos['photoset']['photo'] as $photo) {
$returnDesc = array();
$photoID = $photo['id'];
$rsp = $f->photos_getInfo($photoID);
foreach ($rsp as $pic) {
$returnDesc[] = htmlspecialchars($pic['description'], ENT_QUOTES);
}
$descArray .= $photoID."|~|".$returnDesc[0]."|~|";
}
Строка $ descArray будет помещена в строку MySQL, которая помещает ее в базу данных вместе с другой информацией, извлекаемой из формы.
MyПервый вопрос: правильно ли я использовал второй цикл foreach для получения этих описаний?Я пытался следовать другим примерам по всей сети, которые не использовали это, но они никогда не работали.Когда я привел на второй foreach, то это сработало.Должен ли я сделать что-то еще?
Я заметил, что возвращенные данные будут две записи.Один из них - описание, а другой - просто "o" ... отсюда и массив $ returnDesc, чтобы я мог получить только одну нужную строку, а не другую.
Второй вопрос: могу ли я сделать это тоже?сложно или нет.Мне нравится пытаться научиться писать более понятный код, и я искал мнения.
Предложения по улучшению приветствуются.Заранее спасибо.