Как отобразить случайные файлы из каталога? Код ниже показывает только случайный 1 файл, вывод должен быть 10 файлов.
<?php
$path = "/files";
$files = scandir($path);
shuffle($files);
for($i = 0; ($i < count($files)) && (!is_file($files[$i])); $i++);
echo $files[$i];
?>
for($i = 0; ($i < count($files)) && (!is_file($files[$i])); $i++);
^
Точка с запятой завершает for
оператор цикла, следовательно, он на самом деле ничего не делает, а просто зацикливается, пока условие не станет ложным. Удалить точку с запятой, чтобы исправить.
В качестве более понятного примера возьмем следующий код:
for($i = 0; $i < 5; $i++);
echo $i;
Это будет цикл пять раз, так как for
Оператор тела цикла является пустым (из-за оператора терминатора, точка с запятой). Поскольку отступ в PHP не имеет значения, echo $i
будет отображаться только один раз в конце цикла, когда $i == 5
, Вы можете просмотреть его лучше следующим образом:
for($i = 0; $i < 5; $i++)
;
echo $i;
Других решений пока нет …