要禁用PHP缓存,可以在PHP代码的开头加上以下内容:
header('Cache-Control: no-cache');
这会告诉浏览器不要缓存该页面。
要实现流式输出,可以使用flush()函数。该函数将PHP缓冲区内的内容发送到客户端,而不需要等待脚本结束。可以按照以下步骤实现:
- 启用PHP输出缓冲区。
ob_start();
- 输出数据。
可以使用echo或print等语句逐个输出字符或数据:
echo "hello";
echo "world";
- 使用
flush()
函数将其立即发送到浏览器。
flush();
-
重复输出和刷新直到完成。
-
在完成后关闭输出缓冲区。
ob_end_flush();
完整的示例代码如下:
<?php
// 禁用缓存
header('Cache-Control: no-cache');
// 启用输出缓冲区
ob_start();
// 输出数据
for($i = 0; $i < 10; $i++){
echo $i . "\n";
flush(); // 发送到客户端
sleep(1); // 模拟耗时操作
}
// 关闭输出缓冲区
ob_end_flush();
?>
提示:由于HTTP协议限制,一些代理或浏览器可能会缓存页面,导致无法立即看到输出效果。可以尝试在不同的浏览器中测试,或者通过使用WebSocket等技术实现真正的实时流式输出。