Jump to content
  • 0

Вывести рандомную картинку


Galyanoff
 Share

Question

Здравствуйте.

Подскажите кто знает, как можно сделать такое.

Есть папка с картинками одного размера штук 100.

Надо на странице к записи выводить случайную картинку из этой папки.

 

Буду очень признателен за помощь.

Edited by Galyanoff
Link to comment
Share on other sites

20 answers to this question

Recommended Posts

  • 0

На Windows: зайдите в папку, выделите все картинки, щёлкните на любой "переименовать" и введите "img". Папку назовите "imgs" поместите в корень на сервер и вставьте в HTML:

<img id="random">

В JS:

window.onload = function(){document.getElementById("random").src = "/imgs/img (" + Math.round(Math.random() * 100) + ")";}
Link to comment
Share on other sites

  • 0

Спасибо большое!

 

Но есть один нюанс.

Если на странице больше одной записи, то картинка присваивается только первой записи, у последущих картинки нет.

Я думаю это потому, что присвоен id="random", а правильней будет class="random", ибо элемент с id на странице может быть только один.

Как в скрипте изменить, чтобы был class ?

document.getElementByClass("random")

так правильно будет?

 

upd.

 

Нет, так не работает(

Как же все таки класс присвоить вместо id ?

Edited by Galyanoff
Link to comment
Share on other sites

  • 0
  On 6/20/2014 at 3:27 PM, rus said:
это называется ротатор картинок.

 

Нет, мне не нужен ротатор.

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

Link to comment
Share on other sites

  • 0

Раздел всётаки «серверные технологии» и по сему:

<?phpfunction random_img($path_to_img_folder) {    $full_path = $_SERVER['DOCUMENT_ROOT'].$path_to_img_folder."*.jpg"; //полный путь на сервере к дериктории с jpg файлам    $images_path = glob($full_path); //Получаем массив с картинками     shuffle($images_path); //Перемешиваем    $img_path = str_replace($_SERVER['DOCUMENT_ROOT'], '', $images_path[0]); //Берём первый элемент , приводим к нужному виду с путём от корня сервера        return '<img src='.$img_path.'>'; //Выплёвываем}Echo random_img("/htmlbook/img/"); //Выводим в нужном месте#Коечно при желании можно доработать чтоб подставлял и размеры изображения, #и получал не только jpg, но и вообще изображения, и не только в указанном регистре#Но суть такова
Link to comment
Share on other sites

  • 0
  On 6/20/2014 at 5:43 PM, LunatiK said:
Раздел всётаки «серверные технологии» и по сему:

 

Спасибо, но у меня с этим кодом просто белая страница вместо сайта.

 

И вопрос, вот тут что за путь писать надо?

Echo random_img("/htmlbook/img/"); //Выводим в нужном месте

Link to comment
Share on other sites

  • 0
  On 6/20/2014 at 6:12 PM, LunatiK said:
Путь к папке с картинками относительно корня сервера

 

Посмотрите пожалуйста, в тех ли местах я внес изменения?

Путь до папки я привожу условно:

<?phpfunction random_img($path_to_img_folder) {    $full_path = $_SERVER['DOCUMENT_ROOT']./полный-путь-до-папки-с-картинками/."*.jpg"; //полный путь на сервере к дериктории с jpg файлам    $images_path = glob($full_path); //Получаем массив с картинками     shuffle($images_path); //Перемешиваем    $img_path = str_replace($_SERVER['DOCUMENT_ROOT'], '', $images_path[0]); //Берём первый элемент , приводим к нужному виду с путём от корня сервера        return '<img src='.$img_path.'>'; //Выплёвываем}Echo random_img("/полный-путь-до-папки-с-картинками/"); //Выводим в нужном месте
Link to comment
Share on other sites

  • 0

Уточнение,

Вот этот код целиком надо вставить в html код страницы, в том месте где предполагается вывести изображение?

 

Если да, то у меня не рабоатет. Те страницы где стоит этот код, открываются просто как пустая белая страница(

Link to comment
Share on other sites

  • 0

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

1. Убедитесь что фаил в который вы вставляете данный код обрабатывается php

2. Удостоверьтесь что код обрамлён <? ?> или <?php ?>

3. Первая часть function random_img($path_to_img_folder) { ... } должна быть в начале

4. Потом в любом месте html кода Где вам надо <?php Echo random_img("/полный-путь-до-папки-с-картинками/"); ?> или <?=random_img("/полный-путь-до-папки-с-картинками/"); ?>

 

ну вот как-то так ... Хотя есть подозрение что вам этого будет не достаточно.

Но всё равно: Удачи!

Link to comment
Share on other sites

  • 0
  On 6/20/2014 at 6:36 PM, LunatiK said:
У меня есть подозрение что у Вас нет даже базовых знаний и представлений о php. Даже не знаю какие советы я могу Вам дать в данном случае.

 

Да, в php я не силен, но благодаря Вашим советам, сдвинулось с мертвой точки:

  1. Файл php обрабатывается
  2. Код обрамлен <? ?> или <?php ?>
  3. первую часть вставил в начале страницы
  4. там где надо вывести прописал вторую часть кода

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

В коде сформированной страницы вот что

<img src="">

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

Edited by Galyanoff
Link to comment
Share on other sites

  • 0
  On 6/20/2014 at 7:48 PM, LunatiK said:
по-видимому нет изображений в папке совпадающец с маской *.jpg регистр важен! , либо неправильно указана папка с изображениями

 

Да нет, все верно, регистр именно *jpg

 

путь тоже верный, я путь так проверяю, в корне файл php с кодом:

<?phpecho 'Document root: '.$_SERVER['DOCUMENT_ROOT'].'<br>';echo 'Полный путь к скрипту и его имя: '.$_SERVER['SCRIPT_FILENAME'].'<br>';echo 'Имя скрипта: '.$_SERVER['SCRIPT_NAME'];?>

запускаю его и копирую полный путь который выводит этот скриптик.

 

Возможно ли такое, что обработчик php на сервере другой версии и переменные не в том формате прописаны в коде?

Edited by Galyanoff
Link to comment
Share on other sites

  • 0
  On 6/21/2014 at 5:45 AM, LunatiK said:
нет

 

Заработало наконец-то)

После того как вот здесь был указан такой путь:

Echo random_img("/images/"); //Выводим в нужном месте

Заметьте, не полный путь до папки на сервере, а просто путь до папки в корне сайта.

Я бы сразу так поставил, но меня смутило то, что Вы акцентировали именно полный путь до папки на сервере.

 

Вобщем спасибо Вам большое! Тут как то плюсовать в карму можно?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy