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


Using PHP To Get Folder Images Shows Extra Blank Space

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

您必须在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>