У меня есть сценарий галереи, который проверяет каталог и должен сбрасывать все изображения из каталога в таблицу. Однако - кажется, случайным образом не отображать хотя бы одно изображение из каталога в таблице. Я попытался сделать 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;
}
}
}
?>
Проблема здесь. Некоторые из них не распечатываются, потому что они не соответствуют запросу if перед elseif.
} elseif ($i == 4) {
echo '</tr><tr>';
$i = 0;
}
Замените elseif
if
if ($extension == 'jpg' || $extension == 'JPG')