我有两个广告,并希望在 8 小时之间运行它们,这意味着ad1
脚本开始时立即启动,ad2
在指定为 28800
秒的 8 小时后开始。我正在寻找sleep()
和time_sleep_until()
的功能,但有点困惑如何在广告之间使用它们。
我的广告是在数组中定义的。此外,我曾经尝试过在我的本地主机中sleep
函数立即执行一个广告,并在sleep(28800)
后执行另一个广告,脚本继续执行并显示两个广告的输出。这可能是一个小问题,我没有正确应用逻辑。
听起来对于
PHP在这里实际负责做什么存在一些混淆。当有人向 Web 服务器发出请求时,正在调用 PHP 脚本,但在处理请求后,它完成并退出。当下一个请求进来时,它不知道第一个请求。
如果您使用 sleep(n)
函数休眠 n 秒,这将暂停 Web 服务器的响应,这是一个非常糟糕的主意,而不是您要实现的目标。
一般来说,如果你想根据时间切换一些内容,最好从服务器时间(这总是已知的)开始工作,而不是像"服务器运行了多长时间"这样在现实世界中没有意义的东西。
举一个简单的例子,假设您想根据 8 小时的屏蔽量投放 3 个不同的广告。您可以编写一些代码来查找一天中的小时,然后适当地选择广告。例如:
$selection = (date('G',time()) / 8);
switch ($selection) {
case 0:
echo 'ad option 1!';
break;
case 1:
echo 'ad option 2!';
break;
case 2:
echo 'ad option 3!';
break;
}
date('G',time())
函数返回当前系统时间的小时部分,即 0-23。将其除以 8 将得到 0、1 或 2,您可以从那里选择要显示的内容。
不确定这是否会完全满足您要做的事情。如果没有,您可能需要涉及某种数据库,并有某种工作来更新广告以在某个时间间隔投放(如果可能的话,我会避免这种情况)。
你不应该运行这么长时间的脚本。请改用 cron。您可以根据数据库切换调用ad_1或ad_2,以 8 小时的差异调用同一脚本。