php - 如何实时回显输出(在脚本完成之前)?

标签 php foreach

如何在脚本执行完成之前输出到浏览器?

例如,下面的代码将一次输出所有 100 个“hi”,我该如何让它在读取/处理该部分代码后立即输出?例如:PHPBB3 论坛一步步展示安装过程。

<?php
for ($i = 0; $i <= 100; $i++) {
   echo "hi";
   echo "<br>";
}
?>

最佳答案

在循环之前调用 ob_implicit_flush()。

请注意,这不是保证(网络服务器缓冲区、代理缓冲区和拒绝重新呈现的网络浏览器是您的敌人)。回显一些换行符 (\n) 可能会有所帮助,因为我似乎记得有些浏览器在收到完整的行之前不会重新呈现。

如果您使用输出缓冲(例如,使用 gzip 进行压缩(如果您使用的 gzip 模块使用缓冲,这并不罕见)或其他原因,这将根本不起作用)。

关于php - 如何实时回显输出(在脚本完成之前)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4906816/

相关文章:

php - 跨站点脚本 (xss) 攻击

python - 有没有办法让每个循环都并行?

Java - 从 lambda 中更改最终变量的值

php - foreach 循环 - php - 奇怪的行为

php - 计算两个日期之间的时间差,并给出类似 "2 days 3 hours ago"的答案

php - 组合两个 MySQL 查询?

PHP 避免静态类以避免依赖,但我需要在任何地方使用全局

php - 如何从表格构建图表?

c# - Lock vs. ToArray for thread safe foreach access of List collection

php - 返回数组中大于X的数字