Генерация «слова дня» с помощью случайного числа PHP - PullRequest
2 голосов
/ 25 июля 2011

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

Мне нужно отобразить «слово дня» на веб-сайте, оно должно измениться толькоодин раз в день, и все данные хранятся в формате XML.При загрузке страницы я читаю XML-файл с помощью simpleXml Parser в php, а затем генерирую случайное число в диапазоне от 0 до длины массива и выводит термин + определение.

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

Итак, как мне сгенерировать случайное число в диапазоне от 0 до N, которое даст такое же значение в течение 24 часов.

Ответы [ 4 ]

10 голосов
/ 25 июля 2011

Просто установите текущую дату как «Семя» без часов, минут и секунд.

srand(mktime(0, 0, 0));
$wordIndex = rand(0, $wordCount);

Будет возвращено то же число для одного дня.

6 голосов
/ 25 июля 2011

Вариант 1: без случайных чисел, просто увеличивайте индекс на единицу каждый день. Это будет выглядеть достаточно случайно, так как никто не знает ваш файл. Если это не достаточно хорошо, рандомизируйте входной файл (перемешайте его один раз и сохраните снова).

Вариант 2: использовать сегодняшнюю дату в качестве начального числа для генератора случайных чисел.

2 голосов
/ 25 июля 2011
<?
  srand(date("ymd"));
  echo rand();
?>
0 голосов
/ 25 июля 2011

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

...