我想每2分钟执行一次脚本,直到关闭窗口。我的脚本每2分钟执行一次,写入一个文件。我的脚本没有写入文件。请看我的间隔脚本。
<?php
$interval = 1; //minutes
set_time_limit (0);
while (true)
{
$now=time ();
echo $now . "<BR>";
sleep ($interval * 1 - (time () - $now));
}
?>
尝试
<?php
function do_stuff(){
// do something
sleep(20); // wait 20 seconds
do_stuff(); // call this function again
}
?>
sleep
以秒为参数,因此您应该编写sleep($interval * 60)
您可能需要在每个echo
之后添加flush()
。此外,sleep
希望时间以秒为单位,而不是以分钟为单位,因此您的$interval
可能应该设置为60
,而不是1
。
sleep()绝对不是解决方案(我想知道为什么这里甚至考虑了…)经过大量的实验,我得出了以下解决方案:通过一个包含javascript计时器和帧的HTML文件执行"定时"PHPs(即每隔一段时间执行):
<html>
<head>
<script type='text/javascript'>
var obj;
var interval = {interval_msecs};
var PHP_to_execute = "http://localhost/Work/{yourPHP}.php";
var timer = setInterval(function(){exec()}, interval);
function exec() {
obj = document.getElementById("PHParea");
obj.src = PHP_to_execute;
}
</script>
</head>
<body>
<iframe id="PHParea" src=""></iframe>
</body>
</html>
这是基础(使用localhost)。你可以添加任何你想要的功能。
<?php
set_time_limit(0);
$interval=1; //minutes
echo str_repeat(" ", 1024);
while(true) {
$now=time();
echo $now."<BR>";
sleep($interval * 60);
flush();
}
?>