EDITED:调试了一些代码,但问题仍然存在:
我遇到以下代码的问题是链接总是将我带到集合中的最后一个图像。我试过翻转一系列照片,但没有效果。任何帮助将不胜感激。
感谢。
<?php
$dir = 'pic';
$max_albums=9;
$albums = array_diff(scandir($dir),array('..', '.', 'thumbs'));
foreach ($albums as $album) {
$albumdir = $dir.'/'.$album;
$coverdir = $albumdir.'/thumbs';
$thumbs = array_diff(scandir($coverdir),array('..', '.'));
//re-index $thumbs
$thumbs = array_values($thumbs);
//1 random cover image from each album
$rnd_min = 0;
$rnd_max = count($thumbs)-1;
$rnd_i = mt_rand($rnd_min, $rnd_max);
$covers = $thumbs[$rnd_i];
//re-index $covers
echo $rnd_i.'<br>';
//populate hrefs
$photos = array_diff(scandir($albumdir),array('..', '.', 'thumbs'));
//re-index $photos
$photos = array_values($photos);
foreach ($photos as $photo) {
echo '<a href="'.$albumdir.'/'.$photo.'" data-lightbox="'.$album.'">';
}
//display cover images
echo '<img src="'.$coverdir.'/'.$covers.'" class="img-responsive"></a>';
}
?>
答案 0 :(得分:0)
嗯尝试倒转scandir
$photos = array_diff(scandir($albumdir,1),array('..', '.', 'thumbs'));
答案 1 :(得分:0)
不是一个非常优雅的解决方案,但似乎有效:
<?php
$dir = 'pic';
$max_albums=9;
$albums = array_diff(scandir($dir),array('..', '.', 'thumbs'));
foreach ($albums as $album) {
$albumdir = $dir.'/'.$album;
$coverdir = $albumdir.'/thumbs';
$thumbs = array_diff(scandir($coverdir),array('..', '.'));
//re-index $thumbs
$thumbs = array_values($thumbs);
//1 random cover image from each album
$rnd_min = 0;
$rnd_max = count($thumbs)-1;
$rnd_i = mt_rand($rnd_min, $rnd_max);
$covers = $thumbs[$rnd_i];
//populate hrefs
$photos = array_diff(scandir($albumdir),array('..', '.', 'thumbs'));
//re-index $photos
$photos = array_values($photos);
$countphoto = 0;
foreach ($photos as $photo) {
if ($countphoto==0) {
echo '<a href="'.$albumdir.'/'.$photo.'" data-lightbox="'.$album.'">'."\n";
//display cover images
echo '<img src="'.$coverdir.'/'.$covers.'" class="img-responsive"></a>';
}
else {
echo '<a href="'.$albumdir.'/'.$photo.'" data-lightbox="'.$album.'"></a>'."\n";
}
$countphoto++;
}
}
?>
答案 2 :(得分:0)
所以我用一个简单的if $ countphotos == 0语句在foreach($ photos as $ photo)循环中解决了这个问题,如果为0,它会显示缩略图,否则它只会输出其他imgs的锚点。
我还取消了随机缩略图作为封面,只是拉出了该集的第一个缩略图。
我现在是另一个问题,但我会为此制作一个单独的帖子。
谢谢!