- 数据输出之前先进入缓存区,等所有程序执行完成之后再输出
如何执行一行输出一行呢?
命令行模式
<?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服务器还有一次缓存区
PHP实时输出技巧
本文介绍如何在PHP中实现数据的即时输出,避免程序执行完毕后一次性输出所有数据。通过使用`ob_start`、`ob_end_flush`等函数,可以在CLI模式下实现逐行输出,在Web模式下配合设置HTTP头部来实现连续输出。
683

被折叠的 条评论
为什么被折叠?



