我想通过查找帖子的ID显示当天的引用,所以我使用种子作为最低和最高的ID,所以每天我得到一个随机ID,这将显示随机发布每一天。 我每天使用它生成相同的随机数:
mt_srand(crc32(date('D d F Y')));
echo $random = (mt_rand(1,8288));
这完全适用于php 5.3或更低版本但是我的其他服务器之一是版本5.4.33。它不起作用,每次都会创建一个新的。我已经更改了php版本来测试它,似乎它是影响它的版本。 是否有另一种方法来生成一致的随机'每天都有号码?我需要一个数字,以便我可以查询数据库并每天显示一个特定的帖子。
我不想创建另一个表或添加另一行来为每个帖子添加日期,因为这意味着我必须为每个帖子创建未来日期,并且已经有太多行要做
答案 0 :(得分:0)
看一眼PHP manual for mt_srand告诉你:
PHP中的Mersenne Twister实现现在使用了新的种子 Richard Wagner的算法。相同的种子不再生产 他们在以前的版本中所做的相同的值序列。这种行为 预计不会再次改变,但依赖它是不安全的 尽管如此。
所以你需要做的是使用"糟糕的旧" srand 和 rand -functions。他们将产生你追求的结果。
我想添加一个最后的注释:不要使用这些函数(或mt_rand)用于任何与安全相关的as stated here。
答案 1 :(得分:0)
如果您需要每日身份证,我想到的最简单的方法是:
$today_code = substr( date("D") , 0,1) . substr( date("j") * date("Y") , 0, $your_desidered_lenght = 2);
这将产生格式= A12的ID,其中" A"是本周的第一个字母," 12"是整数,将在整个当天生成。此tecnique ID是: