PHP图像每小时一次


PHP image hourly

我有一个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;
}

为了简单起见,在img/中放置8个不同的图片,从1.jpg命名为8.jpg,然后:

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

G参数为:

一小时的24小时格式,不带前导零。

现在你确信你每小时都有一张不同的照片,每个人看到的都是一样的。

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