У меня есть этот код, и он работает нормально. Показывает обновление в реальном времени.
function progress($resource,$download_size, $downloaded, $upload_size, $uploaded)
{
if($download_size > 0)
$GLOBALS['progress'] = round($downloaded / $download_size * 100);
echo $GLOBALS['progress'];
echo str_pad("", 1024, " ");
flush();
usleep(20000);
}
Тогда почему этот код не показывает обновление в реальном времени. Он показывает 100 в конце выполнения скрипта.
function progress($resource,$download_size, $downloaded, $upload_size, $uploaded)
{
if($download_size > 0)
$GLOBALS['progress'] = round($downloaded / $download_size * 100);
}
if($GLOBALS['progress']) {
echo $GLOBALS['progress'];
echo str_pad("", 1024, " ");
flush();
usleep(20000);
}
На самом деле мне не нужно показывать обновления в реальном времени. Я хочу запустить задачу, когда значение $ GLOBALS [‘progress’] больше 0. Например.
if($GLOBALS['progress']>0){
//start another download immediately not when the value reaches to 100
}
Когда я пытаюсь использовать 2-ю версию моего кода, она запускает задачу, когда значение равно 100. Мне нужно немедленно выполнить код, как только его значение достигнет 1 или больше 0. Может кто-нибудь сказать, почему 2-я версия моего кода не работает и как я могу выполнить свою реальную задачу? Любое предложение будет с благодарностью.
Задача ещё не решена.
Других решений пока нет …