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

时间:2018-10-11 20:55:32

标签: php string random generate

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

这是每次页面加载都会生成随机字符串的代码。我该如何实现?

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

3 个答案:

答案 0 :(得分:2)

使用带有当前日期的哈希函数可以达到相同的结果。

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

这将为您工作,因为哈希将始终在相同的输入下带来相同的结果。每天,随着日期的变化,该功能将使用不同的输入值。

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

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

请使用您要记住的某些键替换“ someString”。关键是使某人很难知道您的“随机”字符串的来源。

答案 1 :(得分:0)

您是否尝试过研究php cookie并将其存储到具有ttl 1天的cookie文件中? 我只说这是因为您提到您不想将其存储在数据库中

答案 2 :(得分:0)

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

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