• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php利用ob_start()清除输出和选择性输出代码分享

php 搞代码 4年前 (2022-01-22) 13次浏览 已收录 0个评论

这次给大家带来php利用ob_start()清除输出和选择性输出代码分享,php利用ob_start()清除输出和选择性输出的注意事项有哪些

+本文来源gao!%daima.com搞$代*!码9网(

搞gaodaima代码,下面就是实战案例,一起来看一下。

一、背景

有一段代码,因为调用了封装的方法,所以会有一些本来不需要的返回值。这些返回值该怎么处理才能让它消失呢。有的人会说,清除变量不就好了吗?但假如这个返回值无法清除,那又该怎么办呢?

二、ob_start()

1、概念:

此函数将打开输出缓冲。当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中。

内部缓冲区的内容可以用 ob_get_contents() 函数复制到一个字符串变量中。 想要输出存储在内部缓冲区中的内容,可以使用 ob_end_flush() 函数。另外, 使用 ob_end_clean() 函数会静默丢弃掉缓冲区的内容。

2、缓冲区的基本用法

//打开缓冲区ob_start();//清除缓冲区中的内容ob_clean();//冲刷出(送出)输出缓冲区内容并关闭缓冲ob_end_flush();

三、基本的测试

1、

echo '1';ob_start();echo '2';ob_clean();

结果: 1

解释:这是最简单的用法,那就是给不想输出内容的外面加上ob_start();,然后再清除缓冲区中的内容,这样就实现了咱们的使用场景。我们可以选择性的输出自己想输出的。去掉自己不想输出的。

2、

echo '1';ob_start();echo '2';//输出缓冲区ob_end_flush();

结果: 12

3、

//打开缓冲区ob_start();echo '1';//清除缓冲区,此时不会输出1ob_clean();//输出缓冲区。但是因为上面已经清除过缓冲区了,所以不会输出 1ob_end_flush();echo '2';

结果: 2

4、

ob_start(); //打开缓冲区echo '1'; $a = ob_get_contents(); //输出缓冲区内容到$a,相当于赋值给$aob_clean();   //这里清除缓冲区内容echo '2';    //输出2echo $a;    //输出$a

结果: 2 1

解释:这里的ob_get_contents();是获取缓冲区的内容。我们可以把获取的内容赋值给一个变量,这样,就算清除了缓冲区,我们输出变量,还是可以正常的输出1的。

四、常用的地方

该函数常用与页面静态化,构造微型web框架能起到很关键的作用,讲渲染好的页面通过输入缓存的方式直接写入到一个文件,这样判断该文件是否存在即可实现用户本次访问需不需要去重新渲染一个页面,也可应用到大型项目中,用nosql去存储渲染好的页面,具体使用方法应人而异,看您喜欢哪种

上面就是我自己做的简单测试。大家有需要的话,可以对照着php手册,多做一些测试。

相信看了本文案例你已经掌握了方法,更多精彩请关注搞代码其它相关文章!

推荐阅读:

CI框架(CodeIgniter)操作redis步骤解析

php实现统计二进制内1的个数算法步骤详解

以上就是php利用ob_start()清除输出和选择性输出代码分享的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php利用ob_start()清除输出和选择性输出代码分享

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址