通过ob_flush()和flush()联合使用实现实时输出

通过ob_flush()和flush()联合使用实现实时输出

PHP中通过ob_flush()和flush()两个函数联合使用可以实现实时输出。ob_flush()函数用于刷新输出缓冲区并将缓冲区的内容输出到浏览器端,flush()函数用于强制输出所有在缓冲区中等待输出的数据,将缓冲区中未输出完的内容输出到浏览器端。这个方法适用于需要长时间运行的脚本,如果脚本很快就运行完毕,可能看不到效果。

示例代码:

<?php
ob_start(); // 打开输出缓冲区
for($i=1; $i<=10; $i++) {
    echo "输出第 $i 行内容<br>";
    ob_flush(); // 刷新输出缓冲区
    flush(); // 强制将块缓冲区中的内容输出到浏览器端
    sleep(1); // 暂停1秒钟
}
ob_end_flush(); // 关闭输出缓冲区
?>

执行上述代码后,会每秒钟输出一行结果,直到输出10行。这个过程中不断地刷新输出缓冲区和强制将块缓冲区中的内容输出到浏览器端,使得用户可以实时看到脚本的执行进度。