好的,这是我的困境:
我已经阅读了所有关于有多少人希望能够使用 PHPFlickr 显示来自 Flickr 的一组图像的信息,但对 PhotoSets 的 API 如何不放置单独的照片描述感到遗憾。有些人尝试设置他们的 PHP,以便当脚本在页面上组装图库时,它将提取每张照片上的描述。然而,该方法已经表明它是多么缓慢和低效。
我在其他地方发现了一个想法,即使用照片 ID 和描述创建一串逗号分隔值。我会将它存储在 MySQL 数据库中,然后在我的脚本在页面上组装图库时调用它。我会使用 explode 来创建照片 ID 及其描述的数组,然后调用它来填补空白……从而减少 API 调用和更快的页面。
因此,在后端管理中,我有一个表单,我在其中设置画廊的信息,并提供一个集合 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 所以我可以得到我想要的一个字符串而不是另一个。
第二个问题是我是否把它弄得太复杂了。我喜欢尝试学习编写更简洁/更精简的代码,并且正在寻找意见。
欢迎提出改进建议。先感谢您。