OK,這裏是我的困境:PHPFlickr腳本...這可以更清潔/更精簡嗎?
我讀過各地有多少人希望能夠以顯示一組使用PHPFlickr來自Flickr的圖片,但哀嘆如何進行的photosets API不把個人照片說明。有些人試圖設置他們的PHP,因爲當腳本在頁面上組裝頁面時,它會拉取每張照片的描述。然而,該方法表明它可能會有多慢和低效率。
我在其他地方發現了一個用照片ID和描述創建一串逗號分隔值的想法。我會將它存儲在MySQL數據庫中,然後在我的腳本在頁面上組裝圖庫時調用它。我會使用爆炸來創建一個照片ID和它的描述數組,然後調用它來填補空白......因此更少的API調用和更快的頁面。
所以在後臺管理員中,我有一個表單,在其中爲圖庫設置了信息,並且我手上了一個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的字符串。
我的第一個問題是我正確使用第二個foreach循環來獲取這些描述?我嘗試了以下遍佈網絡的其他示例,但並未使用它們,但它們從未工作過。當我提出第二個foreach時,它就起作用了。我應該做其他事嗎?
我注意到返回的數據是兩個條目。一個是描述,另一個只是一個「o」...因此數組$ returnDesc,所以我只能得到我想要的一個字符串,而不是其他字符串。
第二個問題是,如果我讓這個過於複雜或沒有。我喜歡嘗試學習編寫更清晰/更精簡的代碼,並且正在尋找意見。
有關改進的建議值得歡迎。先謝謝你。