【发布时间】: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));使扩展名小写