我有生成随机字符串的代码,但我想每天只生成一次随机字符串。
这是每次页面加载都会生成随机字符串的代码。我该如何实现?
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);
答案 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(因为它们是用户特定的),因此这里是另一种方法:
使用当前日期(仅日,月和年)作为随机数生成器的种子。 这样一来,它每天都会变化,并且对所有用户而言都是相同的,而无需保存任何数据。