Как получить одно случайное изображение из десяти тысяч папок с помощью glob?

  • Автор темы makss2
  • 32
  • Обновлено
  • 15, May 2024
  • #1
У меня есть тысячи таких папок каталогов:

img/monkey-folder/ cute-monkey.jpg и т. д. и т. п. img/папка-индейка/ img/папка-роза/ img/папка-большая-рыба/ img/ещё-папка/ и т. д. В каждой папке по 20 изображений. Как получить только 1 случайное изображение? Этот код ниже работает, но извлекает только 1 изображение из 1 папки.

Мне нужно одно случайное изображение из нескольких папок.

Спасибо
 <?php
$imagesDir = 'img/monkey-folder/';
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)];
echo $randomImage; //output img/monkey-folder/etc.jpg
?>
Код (разметка):

makss2


Рег
23 Nov, 2014

Тем
2

Постов
3

Баллов
23
  • 09, Jun 2024
  • #2
Я думаю, это могло бы помочь тебе
 
<?php
$imagesDir = glob('img/*', GLOB_ONLYDIR);
$randomfolder = $imagesDir[array_rand($imagesDir)];
$images = glob($randomfolder . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)];
echo $randomImage; //output img/monkey-folder/etc.jpg
?>
Код (разметка):
 

Uranspb


Рег
15 Jun, 2013

Тем
2

Постов
32

Баллов
52
  • 12, Jun 2024
  • #3
 <?php
$imagesDir = glob('img/*', GLOB_ONLYDIR);
$randomfolder = $imagesDir[array_rand($imagesDir)];
$images = glob($randomfolder . '/*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)];
echo $randomImage; //output img/monkey-folder/etc.jpg
?>
Code (markup): try this, may be the missing / on line 4
 

gausegause


Рег
17 Oct, 2015

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно