【问题标题】:flickr phpflickr apiflickr phpflickr api
【发布时间】:2025-11-30 21:55:02
【问题描述】:

概述
我正在尝试使用 Flickr 的 api 和 phpflickr 库在我的网站上获取照片提要。我可以成功地将照片集放到我的网站上,但它显示了每个照片集中的所有照片,我希望实现的是显示每个照片集中的主要照片,然后如果用户单击图像,它将显示灯箱/阴影箱中的完整照片集。

我的代码

<div id="images" class="tabnav">
                    <ul class="items">
                        <?php $count = 1; ?>
                        <?php foreach ($photosets['photoset'] as $ph_set): ?>
                        <?php $parentID = $ph_set['parent']; ?>
                          <?php $photoset_id = $ph_set['id'];
                          $photos = $f->photosets_getPhotos($photoset_id);
                          foreach ($photos['photoset']['photo'] as $photo): ?>
                           <li>
                           <a rel="shadowbox['<?=$count;?>']" href="<?= $f->buildPhotoURL($photo, 'medium') ?>" title="<?= $photo['title'] ?>">
                                <img src="<?= $f->buildPhotoURL($photo, 'rectangle') ?>" alt="<?= $photo['title'] ?>" width="210" height="160" title="<?= $photo['title'] ?>" />
                                <h3><?=$ph_set['title']?></h3>
                                <p><?=$ph_set['description'];?></p>
                                </a>
                            </li>
                          <?php endforeach; ?>
                        <?php $count++; ?>
                        <?php endforeach; ?>
                    </ul>
                </div>

又一次尝试

我也尝试过以不同的方式调用 getPhotos 函数,而不是不带任何参数发送它,而是带参数发送它

$photos = $f->photosets_getPhotos($photoset_id, NULL, NULL, 1, NULL);

上面的代码停止显示每个照片集中的所有照片并开始只显示主图像,但它也停止让我可以访问其余照片。

我可以做些什么来完成这项工作吗?我完全没有想法。

问候和感谢

【问题讨论】:

    标签: php api flickr


    【解决方案1】:

    我想出了这个解决方案,我想我会发布它以防其他人遇到这个问题,

    <?php $count = 1; ?>
    <?php foreach ($photosets['photoset'] as $ph_set): ?>
    <?php $parentID = $ph_set['parent']; ?>
    <li>
         <?php $photoset_id = $ph_set['id'];
         $photos = $f->photosets_getPhotos($photoset_id);
             foreach ($photos['photoset']['photo'] as $photo): ?>
                 <?php if($parentID == $ph_set['parent']): ?>
                 <a rel="lightbox[album<?=$count;?>]" href="<?= $f->buildPhotoURL($photo, 'medium') ?>" title="<?= $photo['title'] ?>">
             <?php endif;?>
             <img src="<?= $f->buildPhotoURL($photo, 'rectangle') ?>" alt="<?= $photo['title'] ?>" width="210" height="160" title="<?= $photo['title'] ?>" />
                 <h3><?=$ph_set['title']?></h3>
             <?php if($ph_set['description'] != null) :?>
                 <p><?=$ph_set['description'];?></p>
             <?php endif; ?>
             <?php if($parentID == $ph_set['parent']): ?>
                     </a>
            <?php endif;?>
    <?php endforeach; ?>
    </li>
    <?php $count++; ?>
    

    【讨论】:

      【解决方案2】:

      您可能想要做的是首先遍历整个数组,然后首先将每个相册分组到一个单独的数组中,然后为相册的主照片创建一个特殊数组。

      然后您可以轻松地遍历数组以显示每个专辑,并且代码变得更易于维护。

      【讨论】:

      • 你是这样做的正确方法,我的回答是一个黑客,因此我要标记你并给你答案