3

我想每 2 分钟执行一次脚本,直到我关闭窗口。我的脚本每 2 分钟执行一次写入文件。我的脚本没有写入文件。请看我的间隔脚本。

<?php
$interval = 1; //minutes
set_time_limit (0);
while (true)
{
  $now=time ();
  echo $now . "<BR>";
  sleep ($interval * 1 - (time () - $now));
}
?>
4

5 回答 5

4

尝试

<?php
function do_stuff(){

  // do something

 sleep(20); // wait 20 seconds
 do_stuff(); // call this function again
}
?>
于 2013-02-20T08:58:23.337 回答
2

sleep需要作为参数秒数,所以你应该写sleep($interval * 60)

于 2013-02-20T08:58:31.513 回答
1

您可能需要flush()在每个echo. 还sleep需要以秒为单位的时间,而不是以分钟为单位,因此您$interval可能应该设置为60而不是设置为1

于 2013-02-20T08:58:27.957 回答
1

sleep() 绝对不是解决方案(我想知道为什么这里甚至考虑...)经过大量试验后,我得出了以下解决方案:通过包含以下内容的 HTML 文件执行“定时”PHP(即间隔执行)一个javascript计时器和一个框架:

<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>

这是基础(使用本地主机)。您可以添加任何您想要的功能。

于 2017-07-21T21:03:12.617 回答
0
<?php
set_time_limit(0);

$interval=1; //minutes
echo str_repeat(" ", 1024);
while(true) {
    $now=time();
    echo $now."<BR>";
    sleep($interval * 60);
    flush();
}
?>
于 2013-02-20T09:01:36.087 回答