使用PHP获取文件夹图像显示额外的空白

时间:2014-07-23 12:15:49

标签: php html gallery directory

我使用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>

2 个答案:

答案 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>';
        }
    }