从php中的变量实时更新

时间:2015-01-17 18:45:08

标签: php curl real-time flush

我有这个代码,它的工作正常。它显示实时更新。

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  
}

当我尝试使用我的代码的第二个版本时,它会在值为100时启动任务。我需要立即执行代码,一旦其值达到1或大于0.任何人都可以告诉为什么第二个版本的我的代码不起作用,我怎样才能完成我的实际任务?任何建议将不胜感激。

0 个答案:

没有答案