Php выбор случайного файла из папки

Обновлено: 02.07.2024

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

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

Как видите, скрипт может быть очень полезен для некоторых сайтов, например, для различных фотогалерей и т.д. Ниже располагается PHP код, который и реализует показ случайного изображения из указанной папки:

<? 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 )) //выбираем только изображения с расширением .jpg, .jpg и .jpg
if (! strstr ( $all_files [ $i ], ".jpg" ) and ! strstr ( $all_files [ $i ], ".jpg" ) and
! strstr ( $all_files [ $i ], ".jpg" )) continue;
array_push ( $images , $all_files [ $i ]);
>
//выбираем случайное изображение из папки
$img_random = $images [ rand ( 0 , sizeof ( $images )- 1 )];
$img_src = $folder . "/" . $img_random ;
echo '<img src green">. $img_src . '" alt="">' ;
?>

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

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

Читайте также: