Показ баннера.

Статус
В этой теме нельзя размещать новые ответы.

KillDead

Хранитель порядка
Регистрация
11 Авг 2006
Сообщения
894
Реакции
579
Мне нужно организовать показ баннера 1 раз в час, ровно на 1 минуту. Причём время должно всегда быть разным. Нужен совет, как это сделать:bc: . Мускул использовать нельзя. У меня есть идеи, но мне они кажутся не рациональными.
У кого-нибудь есть мысли на этот счёт?:an:
 
Мне нужно организовать показ баннера 1 раз в час, ровно на 1 минуту. Причём время должно всегда быть разным. Нужен совет, как это сделать:bc: . Мускул использовать нельзя. У меня есть идеи, но мне они кажутся не рациональными.
У кого-нибудь есть мысли на этот счёт?:an:

ты хочешь показывать баннер ЕЖЕЧАСНО в течение 1 МИНУТЫ, причем эта минута должна быть РАНДОМНОЙ минутой внутри конкретного часа. так? и если в данном часе "показательной" выбрана минута №29, то если никто не зайдет на сайт в течение этой минуты, баннер в данный час никому не будет показан?

очень размытая постановка. уточни
 
ты хочешь показывать баннер ЕЖЕЧАСНО в течение 1 МИНУТЫ, причем эта минута должна быть РАНДОМНОЙ минутой внутри конкретного часа. так? и если в данном часе "показательной" выбрана минута №29, то если никто не зайдет на сайт в течение этой минуты, баннер в данный час никому не будет показан?
Да, всё так.
 
даже без записи файлов. touch - всему голова
Код:
<?
define('TOUCH_HOUR','smart_banner.hour');
define('TOUCH_MINUTE','smart_banner.minute');

######## setup ########
if (!file_exists(TOUCH_HOUR)) {
	touch(TOUCH_HOUR,time()-3600);
}
if (!file_exists(TOUCH_MINUTE)) {
	touch(TOUCH_MINUTE);
}
#####################

$t = time();
$hour = (int)($t/3600);
$hour_touch = (int)(filemtime(TOUCH_HOUR)/3600);
if ($hour>$hour_touch) {
	touch(TOUCH_HOUR);
	touch(TOUCH_MINUTE,$hour*3600+rand(0,59)*60);
	$hour_touch = $hour;
}

if ($hour==$hour_touch) {
	$minute = (int)($t/60);
	$minute_touch = (int)(filemtime(TOUCH_MINUTE)/60);
	if ($minute==$minute_touch) {
		echo 'banner';
	}
}
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху