У меня есть код, который генерирует случайные строки, но я хочу генерировать случайные строки только один раз в день.
Это код, генерирующий случайную строку при каждой загрузке страницы. Как мне этого добиться?
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);
Вы можете достичь того же результата, используя хэш-функцию с текущей датой.
$sehiradi.substr(sha1('someString'.date('Ymd')),0,5);
Это будет работать для вас, так как хеш всегда будет давать один и тот же результат с одним и тем же вводом. Каждый день функция будет использовать другое входное значение, так как день меняется.
РЕДАКТИРОВАТЬ: Используя ваши значения вы можете иметь:
$sehiradi = "diyarbakir";
$subdomainadi = $sehiradi.substr(sha1('someString'.date('Ymd')),0,5);
Пожалуйста, замените someString на ключ, который вы имеете в виду. Смысл в том, чтобы кому-то было трудно узнать источник вашей «случайной» строки.
Вы пытались просмотреть php cookie и сохранить его в файле cookie с ttl в течение 1 дня?
Я говорю это только потому, что вы упомянули, что не хотите хранить его в базе данных.
Поскольку вы не хотите хранить эту информацию в базе данных и, возможно, не захотите использовать файлы cookie, так как они зависят от пользователя, здесь используется другой подход:
Используйте текущую дату (только день, месяц и год) в качестве начального числа для генератора случайных чисел.
Это сделает его таким, чтобы оно менялось каждый день и было одинаковым для всех пользователей без сохранения одного бита данных.