Показать случайные файлы из каталога?

Как отобразить случайные файлы из каталога? Код ниже показывает только случайный 1 файл, вывод должен быть 10 файлов.

<?php
$path = "/files";

$files = scandir($path);
shuffle($files);

for($i = 0; ($i < count($files)) && (!is_file($files[$i])); $i++);

echo $files[$i];
?>

-1

Решение

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;
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]