-1

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

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

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

3 回答 3

2

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

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

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

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

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

请用您想到的某个键替换“someString”。关键是让别人很难知道你的“随机”字符串的来源。

于 2018-10-11T21:19:30.523 回答
0

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

于 2018-10-11T21:04:09.257 回答
0

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

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

于 2018-10-11T21:11:34.507 回答