Досить часто при створенні сайтів перед нами постає проблема виводити на одному і тому ж місці сторінки різні блоки інформації при кожній її завантаженні.
У даній статті ми докладно розглянемо PHP скрипт дозволяє елементарним чином вирішити задачу ротації блоків. При чому не важливо що в них буде - рекламний банер, текст, інший код.
Поясню трохи докладніше. Припустимо ми маємо найпростіший сайт з парою рекламних блоків:
І при кожній новій завантаженні виділені чорним блоки повинні змінюватися між собою місцями в рандомном порядку. Причому не обов'язково, щоб їх було всього 2, їх може бути скільки завгодно. І виводити на сторінці ми можемо скільки завгодно блоків і де завгодно.
Реалізація ротації блоків інформації на сторінці сайту
Для того, щоб у нас все працювало досить створити маленький масив і скористатися функцією shuffle (), щоб перемішувати значення всередині нього при кожному оновленні сторінки:
<? Php $ banners [] = '<div class = "reclam"> Рекламний блок 1 </ div>'; $ Banners [] = '<div class = "reclam"> Рекламний блок 2 </ div>'; $ Banners [] = '<div class = "reclam"> Рекламний блок 3 </ div>'; $ Banners [] = '<div class = "reclam"> Рекламний блок 4 </ div>'; shuffle ($ banners); echo $ banners [0]; ?>
Тепер розбираємо все по порядку:
- Ми створюємо масив, в який заносимо необхідні нам блоки з інформацією. Що в них буде не має ніякого значення. Скільки їх може бути? А скільки нам потрібно. У прикладі ми взяли 4 «банера»: $ banners [] = '<div class = "reclam"> Рекламний блок 4 </ div>';
- Застосовуючи до нашого масиву shuffle () ми випадковим чином змінюємо порядок проходження елементів в масиві. Простіше кажучи перемішуємо значення між собою:
- Ну і на наступному кроці ми виводимо потрібні нам блоки в потрібних місцях сторінки.
Повний код сторінки прикладу:
<! Doctype html> <html> <head> <title> Мінісайт </ title> <link rel = "stylesheet" media = "all" type = "text / css" href = "style.css" /> </ head > <body> <header> <p> Шапка сайту </ p> </ header> <? php $ banners [] = '<div class = "reclam"> Рекламний блок 1 </ div>'; $ Banners [] = '<div class = "reclam"> Рекламний блок 2 </ div>'; $ Banners [] = '<div class = "reclam"> Рекламний блок 3 </ div>'; $ Banners [] = '<div class = "reclam"> Рекламний блок 4 </ div>'; shuffle ($ banners); echo $ banners [0]; ?> <Section> <p> Основне вміст </ p> </ section> <? Php echo $ banners [1]; ?> <Footer> <p> Підвал сайту </ p> </ footer> </ body> </ html>
Результат його дії:
Після першого завантаження сторінки
Після наступного оновлення ... Ну і так далі. Блоки просто будуть в рандомном (випадковому) порядку чергуватися між собою.
При бажанні ми можемо записати цей скрипт дещо по-іншому:
<? Php $ banners = array ( '<div class = "reclam"> Рекламний блок 1 </ div>', '<div class = "reclam"> Рекламний блок 2 </ div>', '<div class = " reclam "> Рекламний блок 3 </ div> ',' <div class =" reclam "> Рекламний блок 4 </ div> '); shuffle ($ banners); echo $ banners [0]; ?>
Працює він так само як і попередній варіант. Різниця тільки в синтаксисі занесення інформації всередину нашого масиву. Особисто мені другий варіант подобається більше в силу своєї лаконічності.
Переваги розглянутого нами рішення
- Він має дуже просту і зрозумілу структуру, що дозволяє користуватися ним навіть людині робить перші кроки в веб-розробці.
- Він не завантажує будь-яких сторонніх фрагментів коду, файлів і тд, як це часто роблять модулі на популярних CMS, а отже ми ніяк не впливаємо на швидкість завантаження сторінки.
- Для його роботи досить, щоб на сервереподдержівался PHP. Останнім часом хостів без цієї опції я не зустрічав ...
- Ми не прив'язані до якої-небудь CMS або фреймворку. Тобишь використовувати цей скрипт можна на абсолютно будь-якому сайті. Будь то самопис або ж шаблонний сайтик.
- Завдяки своїй просторі не має похибок, які б могли привести до проблем з безпекою сайту.
Оцінок: 8 (середня 4.5 out of 5)
- 3120 переглядів
Сподобалася стаття? Розкажіть про неї друзям:
ще цікаве
Скільки їх може бути?Css" /> </ head > <body> <header> <p> Шапка сайту </ p> </ header> <?
Gt; <Section> <p> Основне вміст </ p> </ section> <?
Php echo $ banners [1]; ?