我搜索了Stack Overflow,只有以下代码才能正确显示文件夹的图像(我已尝试过)。有两个问题:
前两个文件夹的.
和..
,因此if (($h == -1) && ($h == 0))
代码。
它不会显示第二个文件夹的第一张图片,而是显示变量$h
中的图片。出于某种原因,变量$h
在完成foreach循环时似乎不会重置为-1
。相反,我认为正在显示第一个数组中的图像,因此输出为:
Album_1
,该文件夹中的第一张图片,
Album_2
,来自Album_1
文件夹的第一张图片。
$dirs = array_filter(glob('*'), 'is_dir');
foreach($dirs as $dirk) {
$h = -1;
//echo 'hey'.$dirk.'heya';
$dir = $dirk;
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
$files[] = $filename;
}
$images = preg_grep ('/\.jpg$/i', $files);
echo '<div class="div_class">';
foreach($files as $image) {
if (($h == -1) && ($h == 0)) {
echo '';
}
if ($h == 1) {
echo '
<input type="checkbox" id="'.$image.'" name="album"
value="'.$image.'" class="checkbox_class"/>
<label for="'.$image.'" class="label_class">
<div class="div_inside_label">
<span>'.$dirk.'</span>
<br>
<span>'.$h.'</span>
</div>
</label>
<img class="table_images"
src="http://localhost/refit/code/'.$dir.'/
'.$image.'"/>
';
}
else {
echo '';
}
$h++;
}
echo '</div>';
echo $h;
}
答案 0 :(得分:1)
尝试这样的事情:
# Nothing really different here
$dirs = array_filter(glob('*'), 'is_dir');
echo '<div class="div_class">';
foreach($dirs as $dirk) {
# Glob the folder for a jpg
foreach(glob($dirk.'/*.jpg') as $image) {
echo '
<input type="checkbox" id="'.$image.'" name="album" value="'.$image.'" class="checkbox_class"/>
<label for="'.$image.'" class="label_class">
<div class="div_inside_label">
<span>'.$dirk.'</span>
</div>
</label>
<!-- Here you will probably need to fix the path -->
<img class="table_images" src="'.$image.'" />
';
# Stop in this folder
break;
}
}
echo '</div>';