PHP - Отображение папок каталога в случайном порядке - PullRequest
0 голосов
/ 05 января 2019

Код работает отлично. Просто не знаю, как заставить его отображать содержимое случайным образом без использования Jquery.

Получил его для отображения случайного изображения из текущего каталога, но не уверен, как заставить каталог отображаться случайным образом.

$dir = 'img/series_thumbnail/';
$dh = opendir($dir);
while (($fileName = readdir($dh)) !== false) {
  if (!in_array($fileName, array('.', '..'))) {
    $images = glob($dir . $fileName . '/*.{jpg,jpeg,png,gif}', GLOB_BRACE);
    $imgMax = count($images)-1;
    $imgNum = rand(0, $imgMax);
    $imgUrl = $images[$imgNum];
    echo '<li>';
    echo '<img src="' . $imgUrl . '"/>';
    echo '<div class="info"><p>' . $fileName . '</p></div>';
    echo '</li>';
  }
}

Спасибо.

EDIT

Разобрался! Спасибо всем за помощь.

$dir = glob("img/series_thumbnail/*", GLOB_ONLYDIR);
shuffle($dir);
foreach ($dir as $folder) {
  if (!in_array($folder, array(".", ".."))) {
    $folderName = basename($folder).PHP_EOL;
    $images = glob($folder . "/*.{jpg,jpeg,png,gif}", GLOB_BRACE);
    shuffle($images);
    echo "<li>";
    echo '<img src="' . $images[0] . '"/>';
    echo "<div class='info'><p>" . $folderName . "</p></div>";
    echo "</li>";
  }
}

1 Ответ

0 голосов
/ 05 января 2019

Если вы хотите отобразить одно случайное изображение из каждого каталога с каталогами в случайном порядке, вы можете использовать этот код:

$dir = 'img/series_thumbnail/';
$directories = glob("$dir*", GLOB_ONLYDIR);
shuffle($directories);
foreach ($directories as $directory) {
    $images = glob($dir . $directory. '/*.{jpg,jpeg,png,gif}', GLOB_BRACE);
    $imgMax = count($images)-1;
    $imgNum = rand(0, $imgMax);
    $imgUrl = $images[$imgNum];
    echo '<li>';
    echo '<img src="' . $imgUrl . '"/>';
    echo '<div class="info"><p>' . $fileName . '</p></div>';
    echo '</li>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...