2

我有一个 PHP 文件,它会在每次刷新时从文件夹中随机生成一个图像。我从这里下载了它(也有解释)

我怎样才能让它每小时更改一次图像,而不是随机选择图像?例如,我希望它在一个小时内具有相同的图像,然后在该小时结束时更改。基本上,基于某个时间间隔的新图像。

谢谢您的帮助。

4

3 回答 3

1

找线

$imageNumber = time() % count($fileList);

并将其替换为

$imageNumber = (date(z) * 24 + date(G)) % count($fileList);

那应该对你有用。

于 2012-09-10T03:53:08.437 回答
0

我会说你需要一个随机的 oracle函数。基本上,它是一个random()接受输入并生成随机数的函数,并保证所有具有相同输入的调用都会给出相同的输出。

要创建传递给 oracle 的值,请使用每小时都会更改的值。我会使用julian_day_number * 24 + hour_number或类似的东西(只是hour_number不够好,因为它会每 24 小时重复一次)。

然后,每当您的页面加载时,生成您的小时数,将其传递给您的 oracle,并使用结果,就像您现在使用随机值一样。它仍然会随机出现,并且会每小时更改一次。

希望有帮助!

编辑: 随机预言不需要花哨 - 它们可以很简单(公然从这个答案中窃取到另一个问题):

int getRand(int val)
{
    //Not really random, but no one'll know the difference:
    return ((val * 1103515245) + 12345) & 0x7fffffff;
}
于 2012-09-10T03:38:17.213 回答
0

保持简单,将 8 张不同的图片放入img/命名 from 1.jpgto 8.jpg,然后:

$imagePath = sprintf("img/%s.jpg", (date('G') %8) +1);

G参数为

没有前导零的小时的 24 小时格式。

现在,您确定每小时都有不同的照片,而且每个人看到的都是一样的。

编辑:缩小或扩大重复周期调整模,24有几个除数 [1, 2, 3, 4, 6, 8, 12]。

于 2012-09-10T03:45:00.767 回答