Создать ответ 
Скрипт выбора случайного изображения из указанных папок
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #1
Скрипт выбора случайного изображения из указанных папок
Данная тема создана, чтобы разгрузить комментарии к теме Скрипт выбора случайного изображения из указанных папок

Последовательность комментариев к теме сохранена.

(12.09.2013 19:26:55)sergey37 писал(а):Как реализовать, чтобы изображения шли только из одной папки? Мне не надо из нескольких. Всего лишь из одной, плиззз.


(12.09.2013 20:04:13)Administrator писал(а):Так просто укажите путь к папке в переменной $folder (например, $folder = 'images/river'Wink. А $folder_mas в таком случае можно вообще удалить.


(14.09.2013 11:19:17)sergey37 писал(а):У меня заработал только в таком варианте:
<?php
//указываем папки с изображениями
$folder = array('biosilk');
$images = array();
//выбираем случайную папку
$folder = biosilk;
$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="">';
?>

Опробовал на опен сервер.

Ещё вопрос: как сделать в этом же скрипте случайный вывод текста в поле альт: <img src="'.$img_src.'" alt="вот здесь ">


(14.09.2013 11:21:06)sergey37 писал(а):Отличная вещь пхп и джава, хреново только, что не разбираюсь ни в одном, ни в другом. И времени нет на изучение, хоть очень хочется (((
14.09.2013 13:43:00
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #2
RE: Скрипт выбора случайного изображения из указанных папок
Скрипт можно еще немного упростить, т.к. Вы дважды присваиваете одной и той же переменной $folder "одинаковые" значения:

PHP код:
<?php
 $images 
= array();
 
//выбираем случайную папку
 
$folder 'biosilk';
 
$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="">';
?>

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

PHP код:
<?php
 
//указываем возможные alt
 
$alt = array('Фото''Изображение''Картинка''Что это?');
 
$images = array();
 
//выбираем случайную папку
 
$folder 'biosilk';
 
$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;
 
$alt_random $alt[rand(0,sizeof($alt)-1)];
 echo 
'<img src="'.$img_src.'" alt="'.$alt_random.'">';
?>
14.09.2013 14:00:21
Найти все сообщения Цитировать это сообщение
sergey37 Не на форуме
Старшина
*

Сообщений: 58
У нас с: Sep 2013
Сообщение: #3
RE: Скрипт выбора случайного изображения из указанных папок
Спасибо за ответ, а как сделать, что бы выводились изображения в порядке очерёдности.
Т.е. изображение №1, потом №2 и т.д.
В первом варианте скрипта, тот, что вы подправили:
PHP код:
<?php
 $images 
= array();
 
//выбираем случайную папку
 
$folder 'biosilk';
 
$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="">';
?>

Хороший сайт, дружелюбное отношение ).
Можно у вас политического убежища попросить?
(Последняя фраза шутка)
Кажется, я у вас надолго задержусь.
(Последний раз сообщение было отредактировано 15.09.2013 в 09:39:10, отредактировал пользователь sergey37.)
15.09.2013 09:37:18
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #4
RE: Скрипт выбора случайного изображения из указанных папок
Тут нужно немного уточнить Ваш вопрос.
Вы хотите чтобы изображения выводились поочередно при каждом обновлении странички или при помощи JavaScript изображения должны менять друг друга на страничке?
15.09.2013 11:55:36
Найти все сообщения Цитировать это сообщение
sergey37 Не на форуме
Старшина
*

Сообщений: 58
У нас с: Sep 2013
Сообщение: #5
RE: Скрипт выбора случайного изображения из указанных папок
При обновлении страницы, новое изображение поочерёдно.
16.09.2013 10:31:39
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #6
RE: Скрипт выбора случайного изображения из указанных папок
Готово.

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

Данную строчку нужно обязательно разместить в самом верху странички до вывода любых данных на экран (если, конечно, у Вас еще нет session_start();):

PHP код:
<?php
if (session_id()==''session_start();
?>

А вот и остальной скрипт:
PHP код:
<?php
if (!isset($_SESSION["num_img"])) $_SESSION["num_img"]=0;
 
$images = array();
 
//выбираем случайную папку
 
$folder 'image';
 
$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]);
 }
//выбираем и выводим изображение из папки
echo '<img src="'.$folder."/".$images[$_SESSION["num_img"]].'" alt="">';
$_SESSION["num_img"]++;
if (
$_SESSION["num_img"]>sizeof($images)-1$_SESSION["num_img"]=0;
?>

Итого мы имеем следующее:
- для каждого нового посетителя Вашего сайта сначала показывается первое изображение (по алфавиту);
- при обновлении странички, или переходе на другую страничку с этим же скриптом, посетитель увидит следующее изображение;
- даже если пользователь закроет вкладку на короткое время, а потом заново ее откроет, то он увидит уже следующее изображение.
16.09.2013 19:39:47
Найти все сообщения Цитировать это сообщение
Noloniyimo Не на форуме
Рядовой
*

Сообщений: 1
У нас с: Apr 2015
Сообщение: #7
RE: Скрипт выбора случайного изображения из указанных папок
Как сделать автоматическое уменьшение больших картинок до 1280x720 при выводе вот этим кодом (а маленькие картинки хотелось бы оставлять как есть)?

Заранее спасибо Smile
(Последний раз сообщение было отредактировано 04.04.2015 в 20:04:11, отредактировал пользователь Noloniyimo.)
04.04.2015 20:02:13
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #8
RE: Скрипт выбора случайного изображения из указанных папок
Самым простым способом будет вывод изображения внутри блока DIV с заданными размерами. Для этого код вывода изображения:
Код:
echo '<img src="'.$folder."/".$images[$_SESSION["num_img"]].'" alt="">';

Замените на такой:
Код:
echo '<div style="width:1280px; height:720px;">';
echo '<img style="max-width:100%; max-height:100%;" src="'.$folder."/".$images[$_SESSION["num_img"]].'" alt=""></div>';
04.04.2015 20:51:07
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #9
RE: Скрипт выбора случайного изображения из указанных папок
Данное сообщение сделано в ответ на комментарий #m3522, чтобы не выкладывать код целиком в виде комментария к теме.

Думаю, данный код как раз то, что Вам нужно:
Код:
<input type="submit" value="Сменить" onclick="chgImg()"><br>
<img src="image/logo.png" alt="" id="slide_show">

<script type="text/javascript"
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript">
<?php
$images = array();
$folder = 'image';
$array_js='var imgs=[';
$all_files = scandir($folder);
shuffle($all_files);
for ($i=2; $i<=sizeof($all_files)-1; $i++) {
    if (!strstr($all_files[$i],".png") and !strstr($all_files[$i],".jpg") and !strstr($all_files[$i],".gif")) continue;
    $array_js.='"'.$all_files[$i].'",';
}
echo substr($array_js,0,-1).'];';

echo PHP_EOL.'var folder="'.$folder.'";';
?>
var n=0;
var time=800;
function chgImg() {
    $('#slide_show').fadeOut(time, function() {
        $(this).attr('src', folder+'\\'+imgs[n]).fadeIn(time);
    });
    n++;
    if (n>=imgs.length) n=0;
}
</script>

Принцип его работы следующий:
- сканируем на PHP указанную папку (image);
- перемешиваем массив с найденными файлами;
- оставляем только изображения с расширениями png, jpg и gif;
- передаем полученный массив в JavaScript;
- добавляем функцию смены изображений.
23.10.2016 22:08:11
Найти все сообщения Цитировать это сообщение
kuzen_008 Не на форуме
Рядовой
*

Сообщений: 4
У нас с: Nov 2016
Сообщение: #10
RE: Скрипт выбора случайного изображения из указанных папок
Здравствуйте! С помощью данного кода выводится случайная картинка, а можете сделать так, чтобы три изображения выводились рандомно, и без повторений?
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="">';
?>
25.11.2016 02:08:02
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru