如何在每天的特定时间使用PHP自动刷新网页


How to automatically refresh a web page using PHP at a certain time every day?

我需要在当地时间每天凌晨3点刷新一个页面(即GMT+4)。关于如何用PHP做到这一点有什么想法吗?也许是用函数?

这是一个php代码,应该使页面在每天3点刷新:

$page = $_SERVER['PHP_SELF'];
$now = time();
$today = strtotime('3:00');
$tomorrow = strtotime('tomorrow 3:00');
if (($today - $now) > 0) {
    $refreshTime = $today - $now;
} else {
    $refreshTime = $tomorrow - $now;
}
header("Refresh: $refreshTime; url=$page");

也许随着时间的推移操作可以进一步优化

我认为您需要每天凌晨3点运行(至少一个)脚本。

单靠PHP是做不到的。或者澄清一下——你不应该在PHP中这样做。正确的解决方案是使用Cron (Linux环境)或任务调度器(Windows环境),它们的设计是在选定的时间定期运行进程。然后你可以通过wget/cURL请求你的页面,或者更好的是,如果你不需要web服务器,直接通过PHP运行你的脚本(如"[路径到PHP][路径到PHP脚本]",这可能看起来像c:'xampp' PHP c:'xampp'htdocs'myLocalPHPFile.php)

另一个(错误的)解决方案是休眠当前进程直到所需的时间。问题是,您需要手动确定正确的时间(使用日期函数),如果有人终止了您的进程(即PHP本身的最大执行时间),那么就没有什么可以调用该脚本了。另一个问题是该脚本的多个实例正在运行,而PHP本身无法知道是否存在这种情况(当然,这也可以通过锁来解决,或者更好的方法是列出所有进程并杀死该脚本的另一个实例)。