спать и флеш в php петле - PullRequest
       37

спать и флеш в php петле

1 голос
/ 12 октября 2011

У меня есть следующий код:

<?php
$initialSleep = ( isset($_GET['is']) ) ? $_GET['is'] : 0; // seconds - default 0 if not specified
$loopCount = ( isset($_GET['lc']) ) ? $_GET['lc'] : 1; // default 1 if not specified
$loopSleep = ( isset($_GET['ls']) ) ? $_GET['ls'] : 1; // seconds - default 0 if not specified

sleep($initialSleep);

for ( $i = 0; $i < $loopCount; $i++) {
    sleep($loopSleep);
    echo time();
    ob_flush();
}
?>

Моя проблема заключается в том, что вместо того, чтобы выводить время () через определенные промежутки времени, я получаю общую задержку, равную loopCount * loopSleep, а затем все выводится сразу,Я видел другие посты о подобных вещах, и использование flush (), кажется, исправило это для большинства людей - но не для меня.

Любая помощь приветствуется

Ответы [ 2 ]

2 голосов
/ 12 октября 2011

Попробуйте это:

ob_start();
for ( $i = 0; $i < $loopCount; $i++) {
    sleep($loopSleep);
    echo time();
    ob_flush();
    flush();
}
0 голосов
/ 12 октября 2011

Ваш веб-сервер может самостоятельно буферизоваться, если он думает, что таким образом он получит более эффективную передачу.Может быть, вы можете отключить это, но это, вероятно, не самый эффективный в производстве.

...