在php中每隔一段时间执行脚本

在php中每隔一段时间执行脚本,php,execute,Php,Execute,我想每2分钟执行一次脚本,直到关闭窗口。我的脚本每2分钟执行一次,写入文件。我的脚本没有写入文件。请看我的间隔脚本 <?php $interval = 1; //minutes set_time_limit (0); while (true) { $now=time (); echo $now . "<BR>"; sleep ($interval * 1 - (time () - $now)); } ?> 试试看 您可能需要在每个echo之后添加flus

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

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

试试看



您可能需要在每个
echo
之后添加
flush()
。另外,
sleep
希望时间以秒为单位,而不是以分钟为单位,因此您的
$interval
可能应该设置为
60
,而不是设置为
1

sleep
以秒为参数,因此您应该编写
sleep($interval*60)

sleep()绝对不是解决方案(我想知道为什么在这里会考虑它…) 经过大量的实验,我得出了以下解决方案:通过包含javascript计时器和帧的HTML文件执行“定时”PHP(即间隔执行):

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

var-obj;
var interval={interval_msecs};
var PHP_to_execute=”http://localhost/Work/{yourpphp}.php”;
var timer=setInterval(函数(){exec()},interval);
函数exec(){
obj=document.getElementById(“PHParea”);
obj.src=PHP_to_execute;
} 

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

嗯<代码>睡眠(120)
。@deceze:你说得对。这里将sleep functions参数更改为120,并删除其他不需要的代码。有没有一种方法可以让我先回显欢迎,然后再执行interval脚本?问题是这个函数永远不会返回,而且会不断占用时间memory@MihaiRaulea对,递归函数就是这样做的,但您需要根据需要中断或退出该功能。
<?php
set_time_limit(0);

$interval=1; //minutes
echo str_repeat(" ", 1024);
while(true) {
    $now=time();
    echo $now."<BR>";
    sleep($interval * 60);
    flush();
}
?>
<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>