- 数据输出之前先进入缓存区,等所有程序执行完成之后再输出
如何执行一行输出一行呢?
命令行模式
<?php
ob_start(); //cli模式下默认关闭;
for ($i=0;$i<100;$i++){
echo $i;
sleep(1);
ob_end_flush();
}
//结果 :每隔1s在终端输出数据
web模式
<?php
//ob_start(); // web模式下默认开启 Apache
set_time_limit(0);
ob_end_clean();
ob_implicit_flush();
header('X-Accel-Buffering: no'); // 关键是加了这一行。
for($i=0;$i<1000;$i++){
echo $i;
sleep(1);
}
- web服务器还有一次缓存区