php中ob缓存机制
1.ob缓存运行方式
2.注意:在程序中如果开启ob_start(),所有的echo输出都会保存到ob缓存中,可以使用ob系列函数进行操作,如果没有,默认情况下,在程序执行结束,会把缓存中的数据发送给浏览器,如果,你使用ob_clean()类似的函数,会情况缓存中的内容,那么就不用有数据发送给浏览器
ob_start() 开启
ob_get_contents() 获取缓存中的数据
ob_clean() 清空缓存中的数据
ob_end() 关闭ob缓存
ob_end_clean() 清空缓存并关闭ob缓存
ob_flush() 刷新缓冲区【就是把ob缓存中的内容放到程序缓存中,缓存中内容就是空了,默认是在程序执行完后再放到程序缓存中,用此函数可以在程序执行时任意时候放到程序缓存中】
flush() 把程序缓存内容推送到浏览器【一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面,所以必须发送一些额外的空格来让这些浏览器显示页面内容。】
说的简单点:默认情况下,php会把输出的内容放到【程序缓存】中,待程序跑完,把【程序缓存】中的东西全部抛到浏览器中;现在使用ob缓存,开启后,所有的输出都会放到【ob缓存】中,头信息(header)等这些依旧存放到【程序缓存】中,待程序跑完,【ob缓存】中的内容会被放到【程序缓存】内容后面,再送到浏览器。ob_flush()是把【ob缓存】中的内容放到【程序缓存】中,之前只有待程序跑完才会把【ob缓存】内容放到【程序缓存】中,现在用ob_flush()就可以在任意时候送到【程序缓存】中;flush()函数的作用是把【程序缓存】中的数据抛到浏览器中;
总结:ob_flush()把ob缓存中的内容放到程序缓存
flush()是把程序缓存中的内容送到浏览器缓存中