Блог Vaden Pro

Все о самостоятельном создании и продвижении сайтов

PHP скрипт смены блоков сайта

Раздел: 

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

Смена блоков информации на сайте

В данной статье мы подробно рассмотрим 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];
?>

Теперь разбираем все по порядку:

  1. Мы создаем массив, в который заносим необходимые нам блоки с информацией. Что в них будет не имеет никакого значения. Сколько их может быть? А сколько нам нужно. В примере мы взяли 4 «баннера»:
    $banners[] = '<div class="reclam">Рекламный блок 4</div>';
  2. Применяя к нашему массиву shuffle() мы случайным образом изменяем порядок следования элементов в массиве. Проще говоря перемешиваем значения между собой:
    shuffle($banners);
  3. Ну и на следующем шаге мы выводим нужные нам блоки в нужных местах страницы.
    echo $banners[0];

Полный код страницы примера:

<!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 или фреймворку. Тобишь использовать этот скрипт можно на абсолютно любом сайте. Будь то самопис или же шаблонный сайтик.
  • Благодаря своей просторе не имеет погрешностей, которые бы могли привести к проблемам с безопасностью сайта.