我有一个 PHP 文件,它会在每次刷新时从文件夹中随机生成一个图像。我从这里下载了它(也有解释)。
我怎样才能让它每小时更改一次图像,而不是随机选择图像?例如,我希望它在一个小时内具有相同的图像,然后在该小时结束时更改。基本上,基于某个时间间隔的新图像。
谢谢您的帮助。
找线
$imageNumber = time() % count($fileList);
并将其替换为
$imageNumber = (date(z) * 24 + date(G)) % count($fileList);
那应该对你有用。
我会说你需要一个随机的 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;
}
保持简单,将 8 张不同的图片放入img/
命名 from 1.jpg
to 8.jpg
,然后:
$imagePath = sprintf("img/%s.jpg", (date('G') %8) +1);
G
参数为:
没有前导零的小时的 24 小时格式。
现在,您确定每小时都有不同的照片,而且每个人看到的都是一样的。
编辑:缩小或扩大重复周期调整模,24
有几个除数 [1, 2, 3, 4, 6, 8, 12]。