Как я могу генерировать случайную строку, используя php и только один раз в день?

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

Это код, генерирующий случайную строку при каждой загрузке страницы. Как мне этого добиться?

function random_string($length) {
$key = '';
$keys = array_merge(range(0, 9), range('a', 'z'));

for ($i = 0; $i < $length; $i++) {
$key .= $keys[array_rand($keys)];
}

return $key;
}
$sehiradi = "diyarbakir";
$subdomainadi = "$sehiradi."."".random_string(5);

-1

Решение

Вы можете достичь того же результата, используя хэш-функцию с текущей датой.

$sehiradi.substr(sha1('someString'.date('Ymd')),0,5);

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

РЕДАКТИРОВАТЬ: Используя ваши значения вы можете иметь:

$sehiradi = "diyarbakir";
$subdomainadi = $sehiradi.substr(sha1('someString'.date('Ymd')),0,5);

Пожалуйста, замените someString на ключ, который вы имеете в виду. Смысл в том, чтобы кому-то было трудно узнать источник вашей «случайной» строки.

2

Другие решения

Вы пытались просмотреть php cookie и сохранить его в файле cookie с ttl в течение 1 дня?
Я говорю это только потому, что вы упомянули, что не хотите хранить его в базе данных.

0

Поскольку вы не хотите хранить эту информацию в базе данных и, возможно, не захотите использовать файлы cookie, так как они зависят от пользователя, здесь используется другой подход:

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

0
По вопросам рекламы [email protected]