Как сделать простой ротатор баннеров? php

123 4
F
На сайте с 16.01.2010
Offline
267
#11
Joker-jar:
А у меня вот некоторые сомнения на счет "rand() в PHP это РАВНОМЕРНЫЙ генератор случайных чисел.". Думаю, эта равномерность может проявляться лишь в контексте одной сессии (читай, во время выполнения одного скрипта). Чтобы в разных сессиях это работало, интерпретатру пришлось бы где-то в постоянной памяти хранить, кому какие значения уже возвращались. Если мои размышления неверны, поправьте.

Хотя, видимо, LEOnidUKG что-то подобное и имел ввиду

Без определения. Просто при каждом хите следующий баннер.

Joker-jar
На сайте с 26.08.2010
Offline
122
#12

Подкину еще такой вариант для разнообразия:

$banners = array(

'код первого баннера',
'код второго',
...
);

$index = intval( file_get_contents('somefile') ); //--Получаем индекс из файла
$bannr = $banners[$index]; //--Получаем баннер по индексу
file_put_contents( 'somefile', ++$index % count($banners) ); //--Записываем следующий индекс в файл
Оказываю услуги веб-программиста и администратора Linux. ICQ: 751355 | Jabber: jokerjar@jabber.ru | Skype: joker-jar
LEOnidUKG
На сайте с 25.11.2006
Offline
1670
#13
futuristian:
Без определения. Просто при каждом хите следующий баннер.

Тогда это обычный рандом. Код самый простой и быстрый я уже дал на первой странице.

---------- Добавлено 24.01.2012 в 14:36 ----------

Joker-jar:
Подкину еще такой вариант для разнообразия:

$banners = array(

'код первого баннера',
'код второго',
...
);

$index = intval( file_get_contents('somefile') ); //--Получаем индекс из файла
$bannr = $banners[$index]; //--Получаем баннер по индексу
file_put_contents( 'somefile', ++$index % count($banners) ); //--Записываем следующий индекс в файл

Это тоже самое, что и rand, уж поверьте мне, мы в универе сами делали эти генераторы случайных чисел.

p.s. оговорюсь, что это называется ПСЕВДО-случайные числа, но тесты проходят, по заданным параметрам.

✅ Трастовых площадок под размещение статей и ссылок. Опыт 15 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Новый аналог AllSubbmitter https://getmanylinks.ru/getmanysubmits.html (Бесплатное демо)
Dreammaker
На сайте с 20.04.2006
Offline
564
#14
LEOnidUKG:
Если он будет не равномерный, это не рандом, а глючная фигня.

вы описали генератор случайных чисел в php, ибо не знаю, что вы там

LEOnidUKG:
в универе сами делали

но вот


<?php

for ($i=1; $i < 30; $i++)
{
echo rand(1,5) . '<br />';
}

?>


4
4
2
2
2
3
2
3
3
5
4
4
5
2
2
5
5
4
5
3
1
3
4
1
2
3
3
3
5
3

далеко от идилии, которую вы описали, так же далеко и от того, что нужно ТСу. :)

F
На сайте с 16.01.2010
Offline
267
#15
LEOnidUKG:
Тогда это обычный рандом.

Рандом - это рандом. Как добиться порядка?

1-2-3-4-5-1-2-3-4-5-1-...

Joker-jar
На сайте с 26.08.2010
Offline
122
#16

Ну мой второй пример так и делает

SandyMan
На сайте с 13.06.2004
Offline
129
#17

изобретение велосипеда ради спортивного интереса весьма похвально, но если жалко времени, есть готовые решения, например это: http://www.google.com/dfp

Dreammaker
На сайте с 20.04.2006
Offline
564
#18
Joker-jar:
Ну мой второй пример так и делает

ваш пример будет спотыкаться на случаях, когда немного возрастёт посещаемость.

Скорее всего лучший вариант это посмотреть по ссылке, которыю дал SandyMan

Joker-jar
На сайте с 26.08.2010
Offline
122
#19

посещаемость должна быть очень очень большой чтобы начать спотыкаться. к слову, сессионные переменные тоже сохраняются в файл. в моем примере записывается/читается 2-3 байта

TF-Studio
На сайте с 17.08.2010
Offline
334
#20

Dreammaker

Для выяснения надо было сложить все числа и поделить на общее количество + запустить раз сто и высчитать среднее.

И брать больший интервал для ранд.

Это будет более показательно.

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий