如何创建一个每天都会生成新文本的PHP脚本?

时间:2017-04-29 21:56:34

标签: php mysql

我已经对此进行了很多研究,但却无法找到满意的答案;如何创建每天都会生成新号码的PHP脚本?显然我使用它的原因不是每天生成一个随机数,但我不会理解这个原因,它只是让这个问题变得更复杂。所以我问这个问题:我如何生成一个随机数字,这将改变PHP中的每一天?使用MySQL将没有问题,但它必须是自动的,所以我不必每天手动更改它。 (这是我的'脚本'生成随机数)

<?php
echo rand(1,100)
?>

任何答案都表示赞赏,谢谢 - 休

3 个答案:

答案 0 :(得分:3)

使用time()函数生成种子,然后使用常规rand。 这样您就不应该将它存储在任何地方,并且您总是可以在需要时重新生成它。

function randomEveryDay()
{
    $now = time();
    $today = $now - ($now % 86400); //86400 = 1 day in seconds
    srand($today);
    return rand();
}

或者更有趣的例子,没有随意的。

function randomEveryDay() {
    $now = time();
    $today = $now - ($now % 86400);
    $hash = sha1('salt string'.$today);
    return intval('0x' . substr($hash, 6, 8));
}

每天您都会在$today中获得相同的号码,然后使用任何加密\非加密哈希函数生成&#34;随机&#34;。

答案 1 :(得分:2)

只要您了解crontabs的基础知识,这是一项相当简单的任务。

第一步:创建脚本。这基本上是创建&#34;文本&#34;然后通过mysqli将其输入数据库。例如,如果我们生成一个随机数,到目前为止你所拥有的是好的,你只需要将它插入数据库表即可。我建议使用时间戳来确定

生成的日期

第二步:创建一个cronjob。使用服务器crontab每天运行一个任务,这可以通过将其添加到cron文件来完成:这将在每个新的一天运行一个cron。

00 01 * * * php path/to/your/generate.php

第三步使用当前日期从数据库中获取结果。如果您需要显示该文本,请使用当前日期date() or DateTime

从数据库中提取该文本

答案 2 :(得分:0)

如果不确切知道自己想要做什么,就不可能给出一个好的答案,所以每天都会产生一个新的数字:

echo date('Ymd');