【问题标题】:php image gallery loop randomly leaving out imagesphp图片库循环随机遗漏图像
【发布时间】:2015-05-27 20:41:08
【问题描述】:

我有一个画廊脚本,它检查一个目录并将所有图像从目录转储到一个表中。但是 - 它似乎随机不显示表中目录中的至少一张图像。我试过在数组上做一个 var_dump 并且可以看到数组中的所有图像。数组键 6 和 11 和 16 未显示在输出中。目录中有 19 张图片,只有 16 张正在显示。

代码如下:

    <?php

    // open this directory 
    $myDirectory = opendir("images/");

    // get each entry
    while($entryName = readdir($myDirectory)) {
        $dirArray[] = $entryName;
    }

    // close directory
    closedir($myDirectory);

    //  count elements in array
    $indexCount = count($dirArray);

    var_dump($dirArray);

    ?>

    <table cellpadding="5"><tr>

        <?php
        for($index=0; $index < $indexCount; $index++) {
            $extension = substr($dirArray[$index], -3);
            if ($extension == 'jpg'){ // list only jpgs
                if ($i < 4) {
        echo '<td valign="top">
<center><a href="images/'.$dirArray[$index].'" rel="lightbox">
<img src="images/'.$dirArray[$index].'" width="200" >
</a><br>'.$dirArray[$index].'</td>';
        $i++;
    } elseif ($i == 4) {
        echo '</tr><tr>';
        $i = 0;
    }   
            }   
        } 
        ?>

【问题讨论】:

  • 某些文件是否具有 JPG 扩展名?换句话说,扩展名是大写的吗?然后将所有文件重命名为小写,这是最好的选择,或者将您的 if 扩展为 if ($extension == 'jpg' || $extension == 'JPG')
  • 不 - 我首先检查了所有文件都有一个 .jpg 扩展名。
  • 或者你可以使用 $extension = strtolower(substr($dirArray[$index], -3));使扩展名小写

标签: php arrays image


【解决方案1】:

问题就在这里。其中一些没有被打印出来,因为它们与 elseif 之前的 if 语句不匹配。

} elseif ($i == 4) {
    echo '</tr><tr>';
    $i = 0;
}

elseif 替换为if

【讨论】:

  • 宾果游戏!做到了!非常感谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-20
  • 2021-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多