Справочники, инструменты, документация

PHP: Выбор случайного изображения из указанных папок

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

В отличие от обычных скриптов ротаторов изображений в данном скрипте не нужно прописывать все имеющиеся изображения в массив. Скрипт сам выберет из указанных папок изображения с указанными расширениями и выберет среди них случайное.

//указываем папки с изображениями
$folder_mas = array('images/river','images/clouds','images/mountains');
$images = array();
//выбираем случайную папку
$folder = $folder_mas[rand(0,2)];
$all_files = scandir($folder);
while ($i++ < sizeof($all_files)){
  //выбираем только изображения с расширением .png, .jpg и .gif
  if (!strstr($all_files[$i],".png") and !strstr($all_files[$i],".jpg") and
  !strstr($all_files[$i],".gif")) continue;
  array_push($images, $all_files[$i]);
}
//выбираем случайное изображение из папки
$img_random = $images[rand(0,sizeof($images)-1)];
$img_src = $folder."/".$img_random;
echo '<img src="'.$img_src.'" alt="">';

Данный скрипт хорош тем, что не нужно прописывать для выбора случайного изображения все изображения в массив. Данный скрипт так же не использует базу данных. Если Вы добавили или удалили несколько файлов в папке, то ничего страшного не произойдет, т.к. скрипт сканирует папку и выбирает только из имеющихся изображений. Для добавления группы изображений достаточно просто указать скрипту папки с изображениями и скрипт сам найдет в них все изображения и выберет из них случайное.

Если заменить !strstr($all_files[$i],".png") на !strstr($all_files[$i],"picture"), то будут выбираться только изображения в имени которых присутствует picture.