Php 在脚本运行时,如何以增量方式向用户回显响应?
我有一个导入,需要在每次将项目成功导入数据库时通知用户。是否有一种方法可以循环、执行某些功能、提供输出消息,然后使用相同的操作再次循环?您可以使用该函数在PHP脚本完成之前向用户发送输出Php 在脚本运行时,如何以增量方式向用户回显响应?,php,Php,我有一个导入,需要在每次将项目成功导入数据库时通知用户。是否有一种方法可以循环、执行某些功能、提供输出消息,然后使用相同的操作再次循环?您可以使用该函数在PHP脚本完成之前向用户发送输出 刷新-刷新输出缓冲区 刷新PHP的输出缓冲区以及PHP使用的任何后端(CGI、web服务器等)。这将有效地将所有输出推送到用户的浏览器 flush()对web服务器或客户端浏览器的缓冲方案没有影响。因此,您需要调用ob_flush()和flush()来刷新输出缓冲区 一些服务器(尤其是Win32上的服务器)仍会
刷新
-刷新输出缓冲区
刷新PHP的输出缓冲区以及PHP使用的任何后端(CGI、web服务器等)。这将有效地将所有输出推送到用户的浏览器
flush()
对web服务器或客户端浏览器的缓冲方案没有影响。因此,您需要调用ob_flush()
和flush()
来刷新输出缓冲区
一些服务器(尤其是Win32上的服务器)仍会缓冲脚本的输出,直到脚本终止,然后再将结果传输到浏览器
Apache的服务器模块,如mod_gzip
可能会自行进行缓冲,这将导致flush()
不会立即将数据发送到客户端
甚至浏览器也可能在显示输入之前对其进行缓冲。例如,Netscape会对文本进行缓冲,直到它接收到行尾或标记的开头,并且在看到最外面的表的
标记之前,它不会呈现表
某些版本的Microsoft Internet Explorer只有在收到256字节的输出后才会开始显示页面,因此您可能需要在刷新之前发送额外的空白,以使这些浏览器显示页面
这将在您显示消息或其他内容后使用
echo "Patience";
while (!done)
{
echo ".";
flush();
}
注意:
flush()
函数的注意事项是,虽然它(特别是与ob\u flush()
结合使用)为您提供了最佳的成功机会,但无法保证访问者在脚本终止之前看到任何东西。