我使用php获取&显示文件夹中的图像,一切都运行正常,直到我将新图像添加到文件夹 - 它现在在第一个图库图像之前添加一个空格。当我回显$count
时,它显示有8个文件而不是实际存在的7个文件。这是什么原因以及如何防止它?
我的PHP代码是:
<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>
答案 0 :(得分:1)
此代码应该可以使用
<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>
答案 1 :(得分:1)
如果项目$files[$i]
确实是文件,则必须检查for循环。通常,当您在目录中循环时,您还具有值.
和/或..
。你的文件类型没有过滤掉它。
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>';
}
}