PHP — ротатор объемных кодов (переосмысление)

php biggest rotator - PHP — ротатор объемных кодов (переосмысление)

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

На этот раз исправляю вот это: Ротатор для объемных кодов на PHP

Готовые альтернативные решения

JavaScript
PHP на array_rand()

Логичнее всего создать массив и воспользоваться функцией array_rand() (см. выше), которая сама выбирает нужный ей номер ключа массива и показывает его значение (баннер), но не в данном случае.

Данный пример для огромных кодов а-ля счетчик Liveinternet или Яндекс.Метрика, где вперемешку идут двойные и одинарные кавычки, которые просто глупо экранировать и записывать в переменную (элемент массива). Поэтому будем использовать первобытный примитив.

Мы разрываем PHP код, что дает нам возможность использовать HTML код безо всяких преображений (<<<HTML )и экранирования противоположных кавычек!

Первобытная логика

Скрипт генерирует число и согласно условию подставляет соответствующий номер.

Создаем условия для каждого из баннеров отдельно. Они обязательно должны начинаться с первого числа функции rand() (дабы не париться, пускай это всегда будет единица). Числа в условиях всегда должны идти в хронологии +1 (порядок не важен — 1,5,3,2,4, главное плотность) иначе будет показываться пустота.

Пример

Задача запустить ротатор из пяти элементов. Значит необходимо генерировать числа от одного до пяти следующей строчкой кода:

$n = rand(1, 5);

Далее необходимо обработать каждую из генераций индивидуально (написать условия для каждого из пяти чисел) следующим кодом:

if($n == 1) { ?> 

	<p>Код баннера номер один</p>

<?php }

Если этого не сделать, скрипт будет показывать пустые места для несуществующих условий для чисел, например, у нас пять условий, где мы пропустили хронологию и выставили следующие числа: 1,3,5,7,9, а скрипт генерирует 1,2,2,2,5. В таком случае получим:

  • для числа — 1 и 5 отображение того, что прописано в условиях (т.е. правильно настроено);
  • для чисел — 2 пустоту т.к. для них не прописано условие;
  • для чисел — 7 и 9 пустоту т.к. для функции задана генерация чисел от 1 до 5;

Скрипт

<?php

	# Генератор. Начало всегда с 1, конец = количеству условий
	$n = rand(1, 4);

	echo 'Сейчас сгенерировалось' . $n . 'и ему присвоилось: <br/>';

	if($n == 1) { ?> 

		<p>Код баннера номер один</p>

	<?php }

	if($n == 2) { ?> 

		<p>Код баннера номер два</p>

	<?php }

	if($n == 3) { ?> 

		<p>Код баннера номер три</p>

	<?php }

	if($n == 4) { ?> 

		<p>Код баннера номер четыре</p>

	<?php }

	# Никогда не закрывайте PHP код, т.е. ?> ставить в конце не нужно

Далее заносим скрипт в отдельный файл и подключаем на страницу. Подключение отлично расписано в предыдущей статье.

<?php include __DIR__ . '/rotator.php'; ?>

Читайте также

Похожие записи

IDE — как найти идеальную для себя редактор кода
Каждый, кто работает с PHP кодом в определенный момент осознает, что привычные реакторы, для написания HTML / CSS / JS...
Автоматизация мелких продаж, CMS или самописная платформа?
В свое время баловался переделкой движков и плагинов финансовых проектов (CAP, MLM) и была проблема с автоматизацией продаж. Точнее, с...
PHP 7.2 — добавлен новый алгоритм хэширования, удален Mcrypt
В PHP 7.2 добавлен алгоритм хэширования нового поколения, который вскоре может вытеснить Bcrypt, а также удалена библиотека шифрования Mcrypt и...
PHP — делаем проверку наличия HTTPS или редирект
Задача: Не всегда получается настроить .htaccess для принудительного редиректа на протокол HTTPS и как-то необходимо выкручиваться! Если мы знаем, где находится код, отвечающий за роутинг...
Редирект внешних ссылок через PHP $_GET, HTTP ссылки на HTTPS страницах без потери зеленого замка
Автоматизация поиска всех ссылок на javascript здесь Для SEO очень важно контролировать внешние ссылки на вашем сайте. В данной статье...

Комментарии

Бесполезно писать спамные сообщения. Все комментарии проверяются;
Можно оставлять ссылки (через <a href), если они несут полезную информацию или дополняют статью;

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *