如何使用 php 生成一个随机字符串并且每天只生成一次?

How can I generate a random string using php and only once per day?

我有生成随机字符串的代码,但我只想每天生成一次随机字符串。

这是在每次页面加载时生成随机字符串的代码。我怎样才能做到这一点?

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);

您是否尝试过查看 php cookie 并将其存储到具有 ttl 1 天的 cookie 文件中? 我之所以这么说是因为你提到你不想将它存储在数据库中

由于您不想将此信息存储在数据库中,并且可能不想使用 cookie,因为它们是用户特定的,这里有一个不同的方法:

使用当前日期(仅日、月和年)作为随机数生成器的种子。 这将使它每天都在变化,并且对所有用户都是一样的,而无需保存任何数据。

您可以使用当前日期的哈希函数获得相同的结果。

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

这对您有用,因为散列总是会为相同的输入带来相同的结果。每天,随着日期的变化,该函数将使用不同的输入值。

编辑:使用您的价值观,您可以拥有:

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

请将 'someString' 替换为您想到的一些密钥。关键是让别人很难知道你的 "random" 字符串的来源。