当前位置:七道奇文章资讯网站建设网站编程
日期:2010-10-19 11:37:00  来源:本站整理

关于flush()和ob_flush()解析[网站编程]

赞助商链接



  本文“关于flush()和ob_flush()解析[网站编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

flush
(PHP 3, PHP 4, PHP 5)

flush -- 革新输出缓冲
阐明
void flush ( void )


革新PHP程序的缓冲,而不管PHP履行在何种情形下(CGI ,web服务器等等).该函数将当前为止程序的全部输动身送到用户的浏览器.

flush() 函数不会对服务器或客户端浏览器的缓存情势产生影响.因此,必须同时利用 ob_flush() 和flush() 函数来革新输出缓冲.

个体web服务器程序,分外是Win32下的web服务器程序,在发送后果到浏览器之前,仍旧会缓存脚本的输出,直到程序完毕为止.

有些Apache的模块,比方mod_gzip,大概自己举行输出缓存,这将招致flush()函数产生的后果不会当即被发送到客户端浏览器.

乃至浏览器也会在显示之前,缓存接纳到的内容.比方 Netscape 浏览器会在承遭到换行或 html 标志的开首之前缓存内容,并且在承遭到 </table> 标志之前,不会显示出整个表格.

一些版本的 Microsoft Internet Explorer 只有当承遭到的256个字节今后才开始显示该页面,所以必须发送一些额外的空格来让这些浏览器显示页面内容.

ob_flush
(PHP 4 >= 4.2.0, PHP 5)

ob_flush -- Flush (send) the output buffer
Description
void ob_flush ( void )


This function will send the contents of the output buffer (if any). If you want to further process the buffer's contents you have to call ob_get_contents() before ob_flush() as the buffer contents are discarded after ob_flush() is called.

This function does not destroy the output buffer like ob_end_flush() does.


flush和ob_flush的利用上有一些分外简单出错的地方,造成无法革新输出缓冲.


一. flush和ob_flush的精确次序,精确应是,先ob_flush再flush,以下:
ob_flush();
flush();
假如Web服务器的操作系统是windows系统,那次序倒置大概不利用ob_flush()也不会呈现问题.但是在Linux系统上就无法革新输出缓冲.

二. 利用ob_flush()前,确保前面的内容大小充足4069字符.
一些Web服务器的output_buffering默许是4069字符大概更大,即输出内容必须到达4069字符服务器才会flush革新输出缓冲,为了确保flush有效,最好在ob_flush()函数前有以下语句:
print str_repeat(" ", 4096);
以确保到达output_buffering值.


for ($i=10; $i>0; $i--)
{
echo $i.'<br />';
ob_flush();
flush();
sleep(1);
}
ob_end_flush();


  以上是“关于flush()和ob_flush()解析[网站编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 关于flush()和ob_flush()解析
  • <b>关于FLASH留言板的具体教程</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .