PHP flush() 函数是将服务器当前缓冲区的内容直接输出到浏览器。有些服务器的配置可能导致这种情况不发生。
一些服务器,尤其是 Win32 上的服务器,仍然会缓冲脚本的输出,直到脚本终止,然后再将结果传输到浏览器。
Apache 的服务器模块(例如 mod_gzip)可能会自行缓冲,从而导致此函数不会将数据立即发送到客户端。
甚至浏览器也可能在显示输入之前缓冲其输入。例如,Netscape 会缓冲文本,直到收到行尾或标记开头,并且在看到最外层表格的 </table> 标记之前不会渲染表格。
某些版本的 Microsoft Internet Explorer 仅在收到 256 字节的输出后才开始显示页面,因此您可能需要在刷新之前发送额外的空格以使这些浏览器显示页面。
语法
flush()
参数
无需参数。
返回值
不返回值。
示例:flush() 示例
下面的示例显示了flush() 函数的用法。
<?php
//打开输出缓冲
ob_start();
//一次显示每一行
//暂停1秒
for ($i = 1; $i<=3; $i++){
//如果内容太短,有些浏览器不会显示内容
//因此使用 str_pad() 使输出足够长
echo "Line $i content. <br>";
echo str_pad('', 4096)."\n";
//使用flush()发送
//字符串到浏览器
flush();
sleep(1);
}
echo "Done.";
ob_end_flush();
?>
上述代码的输出将是:
Line 1 content.
Line 2 content.
Line 3 content.
Done.