flush()
函数在 PHP 中用于将缓冲区的内容立即发送到浏览器,而不是等待脚本执行完毕。这可以减少延迟,因为它允许浏览器更快地接收和处理数据。
然而,需要注意的是,并非所有服务器配置都支持 flush()
函数。在某些情况下,服务器可能会禁用此功能以提高性能。此外,浏览器也可能不支持或不立即处理 flush()
发送的数据。
在使用 flush()
时,请确保您的服务器和浏览器支持此功能,并根据需要调整代码。以下是一个简单的示例:
<?php
// 关闭输出缓冲
while (ob_get_level()) {
ob_end_clean();
}
// 发送 HTTP 头信息
header('Content-Type: text/html; charset=utf-8');
header('Connection: Keep-Alive');
header('Cache-Control: max-age=0');
header('Pragma: no-cache');
// 输出内容
echo '<html>';
echo '<head>';
echo '<title>Flush Example</title>';
echo '</head>';
echo '<body>';
echo '<h1>Hello, World!</h1>';
// 清空输出缓冲并发送数据到浏览器
ob_implicit_flush(1);
for ($i = 0; $i < 5; $i++) {
echo "Output part $i<br>";
ob_flush();
flush();
sleep(1);
}
echo '</body>';
echo '</html>';
?>
在这个示例中,我们首先关闭输出缓冲,然后发送 HTTP 头信息,接着输出内容,并在每次输出后使用 ob_flush()
和 flush()
将数据发送到浏览器。这将允许浏览器在脚本执行过程中逐步显示内容,从而减少延迟。