当前位置: 首页 > 后端技术 > PHP

PHP执行耗时脚本实时输出内容

时间:2023-03-29 19:15:39 PHP

我们有时会有这样的需求,在执行耗时脚本时,先执行脚本再输出数据。如果不处理,则将页面内容输出到内存中缓存,处理后执行。在这里,我们需要实时输出。flush—刷新输出缓冲区刷新PHP程序的缓冲区,而不管PHP正在执行的环境(CGI、Web服务器等)。该函数将到目前为止程序的所有输出发送到用户的浏览器。flush()函数对服务器或客户端浏览器的缓存模式没有影响。因此,必须使用ob_flush()和flush()函数来刷新输出缓冲区。个别的网络服务器程序,尤其是Win32下的程序,在将结果发送给浏览器之前,仍然会缓存脚本的输出,直到程序结束。某些Apache模块,例如mod_gzip,可能会自行执行输出缓存,这将导致flush()函数的结果不会立即发送到客户端浏览器。甚至浏览器也会在显示之前缓存接收到的内容。例如,Netscape浏览器缓存内容直到它接收到换行符或html标记的开头,并且在它接收到标记之前不显示整个表格。某些版本的MicrosoftInternetExplorer仅在接收到256字节后才开始显示页面,因此必须为这些浏览器发送一些额外的空间才能显示页面内容。如果需要实时输出,两个核心函数ob_flush,flush;要显示的行。";echostr_pad('',4096)."\n";ob_flush();冲洗();睡眠(2);}回声“完成。”;ob_end_flush();