在脚本运行时,如何逐步回显对用户的响应?

时间:2009-07-01 02:48:34

标签: php

我有一个导入,每次项目成功导入数据库时​​都需要通知用户。有没有办法循环,执行一些功能,提供输出消息,然后使用相同的操作再次循环?

1 个答案:

答案 0 :(得分:7)

您可以使用flush()函数在PHP脚本完成之前将输出发送给用户。

  

flush - 刷新输出缓冲区

     

刷新PHP的输出缓冲区以及PHP正在使用的任何后端(CGI,Web服务器等)。这有效地尝试将所有输出推送到用户的浏览器。

     

flush()对您的Web服务器或客户端浏览器的缓冲方案没有影响。因此,您需要同时调用ob_flush()flush()来刷新输出缓冲区。

     

多个服务器,尤其是Win32上的服务器,仍会缓冲脚本的输出,直到它终止,然后才将结果传输到浏览器。

     

mod_gzip这样的Apache服务器模块可能会自行缓冲,导致flush()不会立即将数据发送到客户端。

     

即使是浏览器也可以在显示之前缓冲其输入。例如,Netscape会缓冲文本,直到它收到行尾或标记的开头,并且在看到最外层表的</table>标记之前它不会呈现表。

     

某些版本的Microsoft Internet Explorer只会在收到256字节的输出后才开始显示该页面,因此您可能需要在刷新之前发送额外的空格以使这些浏览器显示该页面。

在显示消息或其他内容后,将使用此方法。

echo "Patience";

while (!done)
{
    echo ".";
    flush();
}