Скриптик меняющий раз в день текст

12
IQ
На сайте с 02.05.2005
Offline
53
1254

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

grey109
На сайте с 15.06.2005
Offline
180
#1

Готового не найти. Команды тоже вроде нет :-)

Пиши что и как должно работать - сделаю на php.

IQ
На сайте с 02.05.2005
Offline
53
#2
grey109:
Готового не найти. Команды тоже вроде нет :-)
Пиши что и как должно работать - сделаю на php.

У меня есть такая фишка, она раз в день меняет файл в дирректории, а файл называется циферками под текущую дату, но мне бы не привязывать к дате.

<?php

$fname = date("Y_m_d");
include("catalog/$fname.php");
?>

Т.е. есть просто каталог под названием "catalog" ;), и в нём файлы с разными названиями, не сильно важно, допустим 1.html, 2.html и т.д.

И вот раз в день, допустим по 00:00 Москвы или какое там время на сервере, этот скриптик меняет предыдущий файл на новый, выбирает его наугад :)

IQ
На сайте с 02.05.2005
Offline
53
#3

Придумал как просто рандумить, теперь бы это привязать к 24 часам, чтобы раз в день менялось, выручайте, кто-нибудь :)

<?php

$fname = rand(1, 3);;
include("catalog/$fname.html");
?>
M
На сайте с 20.08.2004
Offline
376
#4

Проще рандобить с БД

select * ........ ORDER BY RAND (".date("Ymd").")

если хотите раз в час менять используйте YmdH

Вариаций может быть сколь угодно много.

отец сыночка, лапочки дочки и еще одного сыночка
IQ
На сайте с 02.05.2005
Offline
53
#5
Miracle:
Проще рандобить с БД

select * ........ ORDER BY RAND (\".date(\"Ymd\").\")

если хотите раз в час менять используйте YmdH

Вариаций может быть сколь угодно много.

Я не умею с Базами данных работать, и в программировании совсем не силён, мне бы просто брать файл любой из указанного каталога раз в сутки и отлично было бы. Пожалуйста, приведите пример для такого варианта, если не сложно. Заранее большое спасибо за помощь.

AN
На сайте с 31.07.2006
Offline
58
#6

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

одна загвоздка, в НГ будет сбиваться и может провисеть один и тот же файл 2 дня, но думаю, юзеры вам это простят :)

<?

//в $count задается кол-во файлов, нумеруете их 0.html, 1.html и т.д.
$count = 3;
$n = (date('z') % $count);
include('catalog/'.$n.'.html');
?>

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

если интересно -- можно сделать и так, см. подпись.

IQ
На сайте с 02.05.2005
Offline
53
#7
Anton N:
можно, например, брать порядковый номер дня в году и инклудить нужный файл в зависимости от остатка деления номера дня в году на количество файлов.
одна загвоздка, в НГ будет сбиваться и может провисеть один и тот же файл 2 дня, но думаю, юзеры вам это простят :)

<?

//в $count задается кол-во файлов, нумеруете их 0.html, 1.html и т.д.
$count = 3;
$n = (date(\'z\') % $count);
include(\'catalog/\'.$n.\'.html\');
?>


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

Если я верно понял, то получается, что переменной $count задавая разные значения будет выдаваться разный файл из нужного мне каталога?

Поставил разные значения, выдаются разные, круто :) Но такой вопрос возник, если файло в каталоге 3, а я ставлю переменной значение 5, т.е. текущий день делится на 5, получается цифра, но её, допустим, нет в каталоге, что тогда откроется?

unknown
На сайте с 10.06.2006
Offline
94
#8

Позвольте модифицировать.

Вот код скрипта который смотрит сколько и какие файлы есть в указанной директории и выводит их содержимое.

Файлы необязательно должны быть 1,2,3.

Незабудьте поменять тип выводимых файлов если это необходимо

//Сканируемая директория

$dir = 'catalog/';
// получаем список файлов по маске '*' - все файлы
$files = glob($dir."*.html");
$count = (date('z') % count($files));
$n = basename(realpath($files[$count]));
include($dir.$n);
M
На сайте с 20.08.2004
Offline
376
#9

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

По сему, вам проще переназвать файлы, например от 1 до N

а потом просто случайным образом rand(1,N) получать файл и инклюдить его.

IQ
На сайте с 02.05.2005
Offline
53
#10

Мне нужно чтобы вставив на страницу два таких кода, они оба показали разные тексты. Через сутки чтобы эти тексты поменялись.

Может как-то cron прикрутить?

12

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