2013-02-20 3 views
3

Я хотел бы выполнить скрипт каждые 2 минуты, пока не закрою окно. Мой скрипт выполняется каждые 2 минуты в файл. Мой скрипт не записывается в файл. см. мой сценарий интервала.Выполнять скрипт с интервалами в php

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

Uhm ... 'sleep (120)' ...? – deceze

+0

@deceze: вы правы. Здесь измените параметр функции сна на 120 и удалите другой нежелательный код. –

ответ

4

Попробуйте

<?php 
function do_stuff(){ 

    // do something 

sleep(20); // wait 20 seconds 
do_stuff(); // call this function again 
} 
?> 
+0

проблема в том, что эта функция никогда не возвращается, и она будет постоянно занимать память –

+0

@MihaiRaulea, это то, что рекурсивная функция, но вам нужно сломать или выйти из функции в соответствии с вашим требованием. –

1

Вы, вероятно, нужно добавить flush() после каждого echo. Также хотите время в секундах, а не в минутах, поэтому ваш $interval должен быть установлен на 60, а не на 1.

1

sleep занимает, как пары количества секунд, так что вы должны написать sleep($interval * 60)

0
<?php 
set_time_limit(0); 

$interval=1; //minutes 
echo str_repeat(" ", 1024); 
while(true) { 
    $now=time(); 
    echo $now."<BR>"; 
    sleep($interval * 60); 
    flush(); 
} 
?> 
+0

Есть ли способ, с помощью которого я могу сначала эхо приветствовать, тогда работает скрипт интервала? – Meryvn

0

сна(), безусловно, не решение (Интересно, почему даже считаются здесь ...) После большого экспериментирования Я пришел к следующему решению: Выполнить «приуроченный» ПГПС (т.е. выполняется с интервалами) с помощью HTML-файла, содержащего яваскрипт таймера и кадра:

<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). Вы можете добавить whaterever функцию, которую вы хотите.

Смежные вопросы