PHP输出缓存相关函数简介

 1、Flush:刷新缓冲区的内容,输出。  函数格式:flush()  说明:这个函数经常使用,效率很高。

2、ob_start :打开输出缓冲区  函数格式:void ob_start(void)  说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。

3 、ob_get_contents :返回内部缓冲区的内容  使用方法:string ob_get_contents(void)  说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。

4、ob_get_length:返回内部缓冲区的长度。  使用方法:int ob_get_length(void)  说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。

5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。  使用方法:void ob_end_flush(void)  说明:这个函数发送输出缓冲区的内容(如果有的话)。

6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区  使用方法:void ob_end_clean(void)  说明:这个函数不会输出内部缓冲区的内容而是把它删除。

7、ob_implicit_flush:打开或关闭绝对刷新  使用方法:void ob_implicit_flush ([int flag])  说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush() 。
示例代码:  <?php  ob_start(); //打开缓冲区  echo "abcd9.com"; //输出  header(“location:index.php”); //把浏览器重定向到index.php  ob_end_flush(); //输出全部内容到浏览器  ?>

这个函数会发送一段文件头给浏览器,但是如果在使用这个函数之前已经有了任何输出(包括空格,回车和换行之类空输出)就会提示出错。如果去掉第一行的ob_start(),再执行此程序,会出现错误提示:“Header had all ready send by”,因为打开了缓冲区后echo后面的字符不会输出到浏览器,而是保留在服务器,直到使用flush或者ob_end_flush才会输出,所以并不会有任何文件头输出的错误。

时间: 2024-11-11 21:57:46

PHP输出缓存相关函数简介的相关文章

PHP flush sleep 输出缓存控制详解

1 2 3 4 5 6 ob_start,flush,ob_flush for($i=0;$i<</SPAN>10;$i++) { echo $i.''; flush(); sleep(1); } 有了解过PHP缓存输出控制函数的朋友肯定对上面这段代码很熟悉,它想实现的效果是每个1秒输出1个数字,完成全部输出需要10秒,不过实际执行中你会发现奇怪的现象,有些人或者有些时候它的表现如你所愿,而有些人或者有些时候却是10秒后才会一次性输出10个数字.我曾经为此抓狂不已,有朋友留言说这个情况往

IntelliJ IDEA修改Output输出缓存区大小【应对:too much output to process】

IntelliJ IDEA默认的Output输出缓存区大小只有1024KB,超过大小限制的就会被清除,而且还会显示[too much output to process],可通过如下配置界面进行修改(Settings→Editor→Console),单位为KB 如果需要禁用缓存区大小限制就需要修改配置文件idea.properties 配置文件中原有设置: #---------------------------------------------------------------------

php输出缓存控制

一.为什么学习php 输出缓存控制(Output Control)? 答:当然是php 输出缓存控制可以帮我们完成想完成的事情了.那就要从什么是输出缓存控制开始来了解了? 二.什么是php 输出缓存控制(Output Control) 答:由于输出php类似echo输出的时候,首先输出到php buffer里面的.所以我们可以控制这个缓存里面的数据了.当我们echo输出到浏览器的时候,要经历四个步骤:php buffer ----> web server buffer ---->browser

PHP输出缓存ob系列函数详解

ob,输出缓冲区,是output buffering的简称,而不是output cache.ob用对了,是能对速度有一定的帮助,但是盲目的加上ob函数,只会增加CPU额外的负担 ob的基本原则:如果ob缓存打开,则echo的数据首先放在ob缓存.如果是header信息,直接放在程序缓存.当页面执行到最后,会把ob缓存的数据放到程序缓存,然后依次返回给浏览器.下面我说说ob的基本作用:  1)防止在浏览器有输出之后再使用setcookie().header()或session_start()等发送

php 输出缓存的魅力

一:输出缓存介绍 在php所谓的输出缓存,就是代码中的echo 或者其他输出命令在执行的时候是先写入到 php buffer,在脚本执行完或者强制执行输出缓存的命令后,才会把数据输出到浏览器(其中php buffer 就是php.ini中设置的output_buffering ,默认是on,表明无限制大小,可以换成数字来限制大小). 例子: echo 'hlmblog.com'; echo '技术'; echo '分享'; 这两个echo 是按顺序插入到缓冲区的,只有脚本执行完成或者强制执行缓存

ASP.Net 更新页面输出缓存的几种方法

ASP.Net 自带的缓存机制对于提高页面性能有至关重要的作用,另一方面,缓存的使用也会造成信息更新的延迟.如何快速更新缓存数据,有时成了困扰程序员的难题.根据我的使用经验,总结了下面几种方法,概括了常见的几种情况,如有更好的方法欢迎补充. (1)代码级缓存(对象缓存) Cache 对象 Cache 对象提供代码级的缓存,功能强大,可操作性强.更新这种缓存的方法很简单,只要调用 Cache.Remove(key) 方法就可以清除指定的缓存.代码如下: HttpRuntime.Cache.Remo

PHP_输出缓存(output_buffering)的深入理解,边执行边输出

首先明确一下PHP的输出顺序1.打开了php输出缓存: echo,print -> php output_buffring -> server buffering -> browser buffering -> browser display2.未打开php输出缓存: echo,print -> server buffering -> browser buffering -> browser display 另外明确一下浏览器的输出缓存:IE为256Bytes,

MVC输出缓存(Cache:1.输出缓存2.应用程序缓存)

缓存前提概念: 1.使用缓存的目的就是为提供网站性能,减轻对数据库的压力,提高访问的速度. 2.如果使用缓存不当,比不使用缓存造成的影响更恶劣(缓存数据的更新不及时.缓存过多等). 3..net MVC 中有两种相应的缓存技术 :1.应用程序缓存 .2.输出缓存 应用程序缓存和输出缓存的区别 输出缓存:也就是Outputcache 是相对于某个Action或Controller而言.使用的场景包括某个页面的数据更新不是很频繁,不需要每次都从数据库区查询.缓存起来从内存中读取.比如文章详情,排名什

DiskLruCache 硬盘缓存 使用简介

简介 LruCache只是管理了内存中图片的存储与释放,如果图片从内存中被移除的话,那么又需要从网络上重新加载一次图片,这显然非常耗时.对此,Google又提供了一套硬盘缓存的解决方案:DiskLruCache(非Google官方编写,但获得官方认证). 由于DiskLruCache并不是由Google官方编写的,所以这个类并没有被包含在Android API当中,我们需要将这个类从网上下载下来,然后手动添加到项目当中. 下载地址:http://download.csdn.net/detail/