首页 > 后端开发 > 正文

php中“ ob_start()”有什么作用呢?

2024-10-12 07:35:44 | 我爱编程网

小编今天整理了一些php中“ ob_start()”有什么作用呢?相关内容,希望能够帮到大家。

本文目录一览:

php中“ ob_start()”有什么作用呢?

php中“ ob_start()”有什么作用呢?

开启缓冲区,缓冲器清除。

一、Output Control
函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用
header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。

二、程序代码<?phpob_start(); //打开缓冲区echo \"Hellon\"; //输header("location:index.php"); //把浏览器重定向到index.phpob_end_flush();//输出全部内容到浏览器?>。

三、如果我们去掉第一行的ob_start(),再执行此程序,我们会发现得到了一条错误提示:"Header had all ready send
by"!但是加上ob_start,就不会提示出错,原因是当打开了缓冲区,echo后面的字符不会输出到浏览器,而是保留在服务器,直到你使用
flush或者ob_end_flush才会输出,所以并不会有任何文件头输出的错误。

四、当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。

五、使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()。

六、用户在client端得到的是由PHP产生的html页面。如果这个html页面不会再被更新,那么当另外的用户再次浏览此页面时,程序将不会再调用PHP以及相关的数据库,对于某些信息量比较大的网站,例如sina,163,sohu。类似这种的技术带来的好处是非常巨大的。

php中“ ob_start()”有什么作用呢?我爱编程网

在PHP页面的顶端增加语句ob_start();的作用是什么

您好,ob_start();
....
ob_clean();
这两句中间的任意输出,都可以用ob_get_contents();来获取而不输出到浏览器.
经典应用:将phpinfo()的信息写到文件里.
ob_start();
phpinfo();
$phpinfo = ob_get_contents();
//文件读写操作
ob_clean();

其实ob是output buffering的简称,而不是output cache,ob用对了,是能对速度有一定的帮助,但是盲目的加上ob函数,只会增加CPU额外的负担。下面我说说ob的基本作用。
1.防止在浏览器有输出之后再使用setcookie,或者header,session_start函数造成的错误。(我本以为最开始说的代码是这样的作用,但后来朋友说不是的),其实这样的用法少用为好,养成良好的代码习惯。
2.捕捉对一些不可获取的函数的输出,比如phpinfo会输出一大堆的HTML,但是我们无法用一个变量例如$info=phpinfo();来捕捉,这时候ob就管用了
3.对输出的内容进行处理,例如进行gzip压缩,例如进行简繁转换,例如进行一些字符串替换。
4.生成静态文件,其实就是捕捉整页的输出,然后存成文件,经常在生成HTML,或者整页缓存中使用。
对于刚才说的第三点中的GZIP压缩,可能是很多人想用,却没有真真用上的,其实稍稍修改下我朋友的代码,就可以实现页面的gzip压缩。

php中“ ob_start()”有什么作用呢?

php 中ob_start()是用来做什么的?有什么用啊?举个具体的例子

我爱编程网(https://www.52biancheng.com)小编还为大家带来php 中ob_start()是用来做什么的?有什么用啊?举个具体的例子的相关内容。

控制缓冲区

ob_start(); //开启缓冲

echo '输出内容'; // “输出内容”暂不会打印,而是放入缓冲。

然后可以通过其他的函数来处理缓冲区内容。例如
ob_get_contents获取缓冲区内容
ob_clean清空缓冲区
ob_end_clean清空缓冲区,同时关闭缓冲区。
等等。。。

以上就是我爱编程网小编为大家带来的内容了,想要了解更多相关信息,请关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php中“ ob_start()”有什么作用呢?”相关推荐
php 中ob_start()是用来做什么的?有什么用啊?举个具体的例子
php 中ob_start()是用来做什么的?有什么用啊?举个具体的例子

php中ob_start()是用来做什么的?有什么用啊?举个具体的例子控制缓冲区ob_start();//开启缓冲echo'输出内容';//“输出内容”暂不会打印,而是放入缓冲。然后可以通过其他的函数来处理缓冲区内容。例如ob_get_contents获取缓冲区内容ob_clean清空缓冲区ob_end_clean清空缓冲区,同时关闭缓冲区。等等。。。p

2024-09-03 01:30:12
在PHP页面的顶端增加语句ob_start();的作用是什么
在PHP页面的顶端增加语句ob_start();的作用是什么

在PHP页面的顶端增加语句ob_start();的作用是什么您好,ob_start();....ob_clean();这两句中间的任意输出,都可以用ob_get_contents();来获取而不输出到浏览器.经典应用:将phpinfo()的信息写到文件里.ob_start();phpinfo();$phpinfo=ob_get_contents();//文件读

2024-09-02 02:41:04
PHP中,function是什么意思?有什么作用?
PHP中,function是什么意思?有什么作用?

PHP中,function是什么意思?有什么作用?function就是自定义函数如:functionjia($a){$b=$a+10;return$b;}以上就是一个自定义函数,下面看看怎么使用它echojia(‘10’);显示结果为20//这里jia就是自定义的函数名,这样只要给$a任何数字返回的结果都为+10的结果,这样就是自定义了一个函数,这个

2024-07-14 01:22:18
请问在php中parent::__construct()有什么作用
请问在php中parent::__construct()有什么作用

请问在php中parent::__construct()有什么作用你的CommonController已经继承了Controller,所以parent::__construct();就是执行父类的构造方法。这么做是因为子类中写了构造方法会覆盖父类的构造方法导致父类的构造方法不能自动执行,所以在子类中的构造方法中手动执行父类的构造方法。phpthis和self的区别面向对象编

2024-11-16 10:32:36
int和%在python语言中有什么作用?有哪些不同?
int和%在python语言中有什么作用?有哪些不同?

int和%在python语言中有什么作用?有哪些不同?int在python里是一个类,表示是整形,比如1,2,3这些在python里都是int形。你可以直接a=1,这时候a就是int形的变量;也可以s=int(1),这个和上面的效果是一样的。在屏幕输出的命令中,%是格式符号,%d代表整数,%s代表字符单独看%,是一个运算符号,求余数1%5=1,2%5=2,3%5=3,

2024-01-29 14:05:47
php 缓存方式有哪几种呢 都在什么情况下使用呢
php 缓存方式有哪几种呢 都在什么情况下使用呢

PHP应用中常用的9大缓存技术?一、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()******要运行的代码*******$content=Ob_get_contents();****将缓存内容

2025-01-03 21:49:33
为什么python中要有def main这一句话呢?
为什么python中要有def main这一句话呢?

为何Python无main学生需知为什么Python没有main函数?main函数众所周知,Python中没有所谓的main函数,但是网上经常有文章提到Python的main函数和建议编写main函数。其实,可能他们是想模仿真正的main函数,但是许多人都被误导(或误解),然后编写了非常笨拙的代码。在开始讨论之前,我们先来回答以下两个问题·所谓的main函数究竟是

2024-02-13 21:20:27
在php中 为什么用 readfile 函数读取网络图片,有时成功有时失败呢?
在php中 为什么用 readfile 函数读取网络图片,有时成功有时失败呢?

在php中为什么用readfile函数读取网络图片,有时成功有时失败呢?首先读取网络图片,建议用file_get_contents函数。因为网络连接本身是不稳定的,因此可能失败。&lt;?phpdo{$img=@file_get_contents($url)}while(strlen($img)&lt;256);?&gt;以上代码通过循环来确保文件能被正确读取。文件的大小不能小于256个字符

2024-09-07 04:31:25