我希望在 sleep 函数执行之前(每次)在浏览器中输出回显。
以下代码无效
set_time_limit(0);
ob_implicit_flush(1);
ob_start();
echo "Start<Br>";
ob_flush();
for($i=0;$i<10;$i++){
$randSlp=rand(1,3);
//echo str_repeat(" ", 1024);
echo "Sleeping for ".$randSlp." second. ";
ob_flush();
sleep($randSlp);
}
ob_end_flush();
如果在浏览器中取消注释 str_repeat
函数
第一次 :
开始
休眠1秒。
睡了 3 秒。
第二次:休眠2秒。
休眠 2 秒。
然后继续...
可以不用str_repeat()函数一个一个地回显,为什么输出不是每次都显示。
最佳答案
尝试以下代码及其工作。
header( 'Content-type: text/html; charset=utf-8' );
header("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
set_time_limit(0);
ob_implicit_flush(1);
//apache_setenv('no-gzip', 1);
//ini_set('zlib.output_compression', 0);
//ini_set('implicit_flush', 1);
for ($i = 0; $i < 10; $i++) {
$randSlp=rand(1,3);
echo "Sleeping for ".$randSlp." second. ";;
sleep(1);
if(ob_get_level()>0)
ob_end_flush();
}
关于PHP echo before sleep 函数,不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16170028/