PHP Random Image Rotation - случайное изображение на сайте

В этом уроке мы сделаем вывод изображения на сайт из папки случайным образом с помощью скрипта PHP Random Image Rotation - это основная функция скрипта. Также с помощью этого же скрипта сделаем вывод случайной html-страницы через iframe и случайной таблицы стилей CSS.

demosourse

1. Случайное изображение. Создадим папку на сервере rotate_image и туда положим изображения и сам скрипт rotate.php (изображения желательно привести к одному размеру, например 400*100 px)
В нужном месте страницы вставляем очень простой код:

<img src=" rotate_image /rotate.php" alt="Случайное изображение" width="400" height="100" /> 

Все. Наш скрипт работает.

В файле rotate.php есть несколько настроек:

$folder = '.' ; 

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

$extList = array();
 $extList['gif'] = 'image/gif';
 $extList['jpg'] = 'image/jpeg';
 $extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';

- В этом массиве указываем какие типы файлов "подцеплять" из папки.

2. Случайный html. Все аналогично, только файлы мы будем "крутить" через фрейм:

<iframe src="rotate_html/rotate2.php" width="500" height="100">

В скрипте (rotate_html/rotate2.php) мы в массиве $extList укажем, что "подцеплять" нужно html файлы:

$extList = array();
$extList['html'] = 'text/html';
$extList['htm'] = 'text/html';

3. Случайный css. Все аналогично, между тэгами <head> вместо какой-либо таблицы стилей "подцепим скрипт":

<link rel="stylesheet" href="rotate_style/rotate3.php" type="text/css" media="screen" />

А в скрипте(rotate_style/rotate3.php) в массиве $extList укажем, что "подцеплять" нужно css файлы:

$extList = array();
$extList['css'] = 'text/css';

Файлы rotate.php, rotate2.php, rotate3.php - один и тот же скрипт, разница лишь в содержании массива $extList.
Вот и все, пользуйтесь на здоровье

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.marcofolio.net
Перевел: Евгений Стыценков
Урок создан: 21 Апреля 2009
Просмотров: 67154
Правила перепечатки


5 последних уроков рубрики "PHP"

  • Фильтрация данных с помощью zend-filter

    Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.

  • Контекстное экранирование с помощью zend-escaper

    Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

  • Подключение Zend модулей к Expressive

    Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

  • Совет: отправка информации в Google Analytics через API

    Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

  • Подборка PHP песочниц

    Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете
  • 22 Апреля 2009 14:00
    SVS
    PHP - матерая штука, я лично давно ожидаю уроки по этой теме. Спасибо за урок, жду следующих...
  • 22 Апреля 2009 15:09
    Сергей_Патин
    Вообще-то поддержка php есть практически на всех платных хостингах (но по крайней мере в 99% из них). И на многих бесплатных.
  • 22 Апреля 2009 16:59
    dima
    2 вебмастер вы чего с луны упали))) щас даже на бесплатном хостинге, (если так можно выразиться...) есть поддержка PHP 5, GDLib, FTP и бесплатный доступ к MySQL посредством phpmyadmin. Единственные минус - постоянные лаги с доступом, большая загрузка сервера, посредственная тех.поддержка и конечно же реклама хостинга которую никуда не уберешь((.
  • 22 Апреля 2009 19:10
    kickerps
    г, давно уже думал как такое сделать... хорошая штука
  • 22 Апреля 2009 19:42
    dima
    для вывода баннеров такое чтоле сделать..., но с другой стороны, когда моргают перед глазами(в смысле постоянно сменяются) тоже не удобно((
  • 23 Апреля 2009 10:17
    alchimik
    Такую штуку можно сделать и без jquery, просто с php с помощью функции shuffle
  • 23 Апреля 2009 11:41
    yaЕвген
    alchimik, а где написано что эта штука jquery использует?
  • 23 Апреля 2009 12:16
    alchimik
    Упс))
  • 23 Апреля 2009 12:32
    dima
    ухоха.. ну вы ребята жжоте)))
  • 25 Апреля 2009 18:53
    Виталий
    У меня почему-то не заработал .Вроде все сделал правильно.Открывается пустое окно с надписью Случайное изображение и все.Может сделал что не так.Подскажите.
  • 26 Апреля 2009 15:32
    dima
    виталий проверь пути к картинкам и чтоб сами изображения были
  • 19 Мая 2009 18:39
    Серега
    Кто-нибудь пробовал крутить случайный html через фрейм? В демо он не работает! Только первую страничку показывает?
  • 19 Мая 2009 18:43
    Серега
    Этот скрипт кажется не является кроссбраузерным, так как в opere rotator html работает, а в firefox нет(
  • 3 Июня 2009 14:04
    Childik
    Вот именно то, что искал. СПАСИБО!!!
  • 3 Июля 2009 17:20
    Brendon
    Спасибо за скрипт
  • 2 Октября 2009 23:26
    Александр
    Здравствуйте, у меня вот такая проблема хочу подключить к этому скрипту, jQuery. Чтоб при клике по ссылке на скрипт rotate.php, показывалась картинка в мод. окне. тоесть увеличивалась. Но проблема в том что показывается в мод. окне не картинка а крякозябла. Может что не правильно делаю подскажите плиз.
  • 10 Октября 2009 23:14
    Александр
    Проблему решил изминил немного этот скрипт и всё пошло успешно. Нужно было просто шапку header ($contentType); за коментить и немного дописать скрипт. Если интересно вот что получилось http://www.remdiz.ru
  • 7 Ноября 2009 11:19
    criminalist
    Попытался прописать путь в css файле до rotate.php, идея была фон сайта сделать рандомым не выводит изображения ( подскажите если кто знает как правильно прописать ?
  • 7 Ноября 2009 15:53
    anikey
    <?php $quotes[] = '<img src=http://pricheska.moy.su/images/clip.png width=200 height=200 />'; $quotes[] = '<div><a href=http://kachay.ucoz.org>kachay.ucoz.org</div>'; $quotes[] = '<iframe src=http://kachay.ucoz.org width=300 height=300></iframe>'; srand ((double) microtime() * 1000000); $random_number = rand(0,count($quotes)-1); echo ($quotes[$random_number]); ?> //вот и весь велосипед для случайного вывода на экран, зачем мудрить было как в примере не понятно :)
  • 11 Декабря 2009 17:53
    Cypress
    А как зделать запрос чтоб картинка с базы витягивалась?
  • 1 Февраля 2010 19:00
    Curt
    Народ етот рендом работает при обновление странички! Анада што бы рендомил картинки при переходе на другую страничку! Как? подскажите плз)))ЗАрание благодарю)
  • 27 Марта 2010 00:53
    wader
    А как зделать запрос чтоб картинка с базы витягивалась? Ответ: ))) Вытягиваются рандомные УНИКАЛЬНЫЕ картинки. <?php echo '<p class="btext">Случайное фото</p><br>'; include('bd_conect.php'); //подключаем базу даных $kimg=mysql_query("SELECT * FROM images"); $rezi=mysql_num_rows($kimg); for ($kk=0; $kk<$rezi; $kk++) { $rowimg=mysql_fetch_array($kimg); $input[$kk]=$rowimg['img']; } srand((float) microtime() * 10000000); $rand_keys = array_rand($input, 7); for ($i=0; $i<7; $i++) { echo "<img src='images/".$input[$rand_keys[$i]]."'><br>"; //Отображаем 7 случайних картинок. } ?>
  • 9 Июля 2010 14:43
    DickNickens
    хорошая штука
  • 9 Июля 2010 14:44
    DickNickens
    Спасибо за урок
  • 14 Июля 2010 21:09
    wywywy
    Спасибо пригодился
  • 24 Июля 2010 19:11
    Ukei
    anikey, полностью согласен. Нагородили такой лес из-за простейшей задачи. Можно даже так: генерируем случайное число (от 1 до кол-ва файлов каждого типа, для каждого типа, есессно) -> кидаем в папку файлы с соответствующими названиями (1.jpg, 2.jpg, 1.css...) -> и echo "<img src='$sgenerirovannoe_chislo.jpg' />"; Сразу в голову приходит и вывод случайного файла из определённой директории определённого типа - можно сделать с readdir(), а дальше всё вообще просто. Curt, попробуйте изменить картинку на каждой странице вручную))) Ну или с куками делать. Есть вариант: извлечь реферер из заголовков. (зачем Вам это надо? Обновление страницы можно считать открытием новой, по крайней мере в действительности так и есть)
  • 24 Июля 2010 19:14
    Ukei
    Серега, в первый раз сталкиваюсь с некроссбраузерным php... Странно, правда?
  • 8 Августа 2010 11:25
    Гук
    Спасибо за урок!
  • 7 Декабря 2010 15:26
    F1SHER
    Спасибо за скрипт. А как сделать в этом скрипте временной интервал смены картинок (при обновлении страницы)? Например, картинка меняется на другую только через час.
  • 4 Января 2011 23:33
    demon
    &lt;br&gt; строка переноса &lt;br&gt; проверка &lt;n&gt;
  • 3 Февраля 2011 13:46
    svij
    а я малость по другому делал… к примеру, есть у меня 10 картинок , которые мне надо зарандомить.. я называю всех image1, image2 и т.д. до image10.. вот, а потом:
    <img src=”images/image<?php
    echo(mt_rand(1,10)); ?>.jpg ”>
    вот и все :)
  • 24 Мая 2011 12:16
    valitov
    товарищи, а как реализовать сразу 4 разных изображения? возможно-ли с помощью этого скрипта?
  • 13 Июня 2011 11:26
    waltside
    А как сделать чтобы при клике на изображение выдавало рандом цитаты например?
  • 16 Сентября 2011 22:51
    svvoy
    просто супер! я много прокавырялся с различными кодами а это прост! и самый рабочий!
    • 12 Октября 2011 23:31
      Select
      <img src = "rotate_image/rotate<?	echo rand(1,8); ?>.jpeg"> 
      и не надо никакого скрипта
  • 20 Июня 2013 11:57
    bigpit
    Простите а как сделать картинку ссылкой?
  • 20 Июня 2013 12:34
    bigpit
    Жаль, почему то на локальном работает а на виртуальном сервере нет((
  • 25 Сентября 2013 20:04
    xefff
    Nice article
  • 11 Февраля 2014 21:47
    andretty26
    У меня не работает( Путь указал верно,проверял 100 раз.Вместо картинки рамка в ней текст и маленькое лого.В чем дело?Как я понял в самом коде php ничего трогать не надо.Помогите.
  • 10 Сентября 2014 08:45
    kay2000
    Здравствуйте. Нужна помощь. Как в данном скрипте добавить возможность вывода имени файла без расширения под каждой картинкой? Спасибо!
^ Наверх ^