Сейчас: 07:08:15   18-го апреля 2024 г.
UsefulScript.ruСкриптыГрафикаВыбор случайного изображения
16
84

Скрипт выбора случайного изображения из указанных папок

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


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

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

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)){
    
//выбираем только изображения с расширением .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.

Дата создания: 23:07:15 10.10.2012 г.
Посещений: 19288 раз(а).

Комментарии посетителей (18 шт.):
Sergey1917
-1
# 759
(18:14:03  06.04.2013 г.)

Насколько я понял, он выбирает при загрузке страницы сайта и показывает одну статичную картинку из одного каталога. А нужно тоже самое, только показывать все картинки из папки, слайд-шоу. И без прописки в коде имен картинок. У вас такого скрипта нет? Может, такого и в природе нет?
Ответить

Administrator
0
# 765
(21:56:51  06.04.2013 г.)

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

Sergey1917
1
# 768
(00:03:47  07.04.2013 г.)

Я уже давно такой ищу. И конечно правильно вы пишете, что много лишних функций. Хотелось бы минималистский, без всяких наворотов. Но пока никакого вообще не встречал, чтоб из папки без прописи.
Ответить

Administrator
0
# 796
(17:02:50  13.04.2013 г.)

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

sergey37
0
# 1104
(20:26:55  12.09.2013 г.)

Как реализовать, чтобы изображения шли только из одной папки? Мне не надо из нескольких. Всего лишь из одной, плиззз.
Ответить

Administrator
1
# 1107
(21:04:13  12.09.2013 г.)

Так просто укажите путь к папке в переменной $folder (например, $folder = 'images/river';). А $folder_mas в таком случае можно вообще удалить.
P.S. Дальнейшее обсуждение перенес на наш форум в виде отдельной темы.
Ответить

demn
1
# 1808
(15:16:30  18.08.2014 г.)

Здравствуйте! Подскажите, пожалуйста, можно сделать, чтобы изображения выводились рандомно, но не повторялись?
Ответить

Administrator
0
# 1809
(20:41:29  18.08.2014 г.)

Можно, но придется записывать все показанные изображения и хранить их в памяти, что не оптимально.
Ответить

Алекс
0
# 2040
(00:08:22  17.11.2014 г.)

А этот скрипт на PHP сайте надо вставлять или на Html пойдет?
Ответить

Administrator
1
# 2042
(19:51:36  17.11.2014 г.)

Для данного скрипта поддержка PHP обязательна.
Ответить

Евгений
0
# 2906
(17:08:32  15.12.2015 г.)

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

Administrator
1
# 2907
(20:18:26  15.12.2015 г.)

Если к каждой картинке своя ссылка и свой title, то вот:
$img = array("Banner1.png", "Banner2.png", "Banner3.png", "Banner4.png");
$titles = array("Заголовок 1", "Заголовок 2", "Заголовок 3", "Заголовок 4");
$urls = array("link_1.php", "link_2.php", "link_3.php", "link_4.php");
$rnd = rand(0,sizeof($img)-1);
echo $titles[$rnd].'<br><a href="'.$urls[$rnd].'"><img src="'.$img[$rnd].'" alt="">';
Ответить

Женя
0
# 3000
(11:44:46  26.01.2016 г.)

Здравствуйте! Напишите, пожалуйста, такой же код, только для вывода строки из файла, но чтобы файл также выбирался случайным образом.
Например: есть папка, в которой 100 файлов txt, в каждом файле по 1000 строк. Нужно выбирать случайный файл и случайную строку и выводить её.
Заранее благодарен!
Ответить

Роман
0
# 3721
(10:23:02  06.02.2017 г.)

1) $i - нигде не объявлен.
2) Периодически изображение не подгружается - то есть ощущение, что скрипт выбирает несуществующую картинку или высчитывает количество картинок больше чем их есть на самом деле.
Ответить

Мир
0
# 4440
(11:41:33  20.03.2019 г.)

Мне нужен такой же php скрипт, но чтобы изображения сменялись каждую секунду и чтобы изображение показывалось одно, а не сразу три.
Ответить

Мир
0
# 4441
(08:13:58  21.03.2019 г.)

И ещё, не подскажите что надо вставить в .htaccess, чтобы заработало php, а то предлагает сохранить файл, то просто показывает сам код. Заранее благодарен.
Ответить

Сергей
0
# 4490
(14:37:23  06.07.2019 г.)

А как аналогичным способом вывести случайное изображение из папки на печать?
Ответить

Закрыть
Ваше имя:
540 + 4 =
Добавить комментарий:
Ваше имя:
540 + 4 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 7

Как Вы узнали о нашем сайте?