我正在使用php获取&在文件夹中显示图像,一切都工作得很好,直到我将新图像添加到文件夹-它现在在第一个画廊图像之前添加了一个空白空间。当我回显$count
时,它显示有8个文件,而不是实际的7个。造成这种情况的原因是什么?我该如何预防?
<div id="gallery">
<h1>Take A Look Around:</h1>
<p>
<?php
$folder = 'gallery/';
$filetype = '*.*';
$files = glob($folder.$filetype);
$count = count($files);
for ($i = ($count-1); $i >= 0; $i--) {
echo '<div class="photoHolder"><div class="photoCell"><a class="fancybox" rel="group" href="'.$files[$i].'"><img class="photo" src="'.$files[$i].'" alt=""></a></div></div>';
}
?>
<div class="clearLeft"></div><?php echo $count; ?>
</p>
</div>
您必须在for循环中检查项目$files[$i]
是否确实是一个文件。在目录中循环时,通常还会有.
和/或..
值。你的文件类型没有过滤掉。
foreach ($files as $file)
{
if(is_file($folder.$files[$i])
{
echo '<div class="photoHolder"><div class="photoCell"><a class="fancybox" rel="group" href="'.$file.'"><img class="photo" src="'.$file.'" alt=""></a></div></div>';
}
}
这段代码应该可以运行
<div id="gallery">
<h1>Take A Look Around:</h1>
<p><?php
$folder = 'gallery/';
$filetype = '*.*';
$files = glob($folder.$filetype);
foreach ($files as $file)
{
echo '<div class="photoHolder"><div class="photoCell"><a class="fancybox" rel="group" href="'.$file.'"><img class="photo" src="'.$file.'" alt=""></a></div></div>';
}
?></p>
<div class="clearLeft"></div>
<p><?php echo count($files); ?></p>
</div>