-
php ob_start()函数实现当前页面内容缓存输出
页面缓存就是把页面保存到一个文件中,下次读出时直接调用文件而不查询数据库,这里我们介绍利用ob_start()来实现.
例,代码如下:
- <?php
- ob_start(); //打开缓冲区
- phpinfo(); //使用phpinfo函数
- $info=ob_get_contents(); //得到缓冲区的内容并且赋值给$info
- $file=fopen(’info.txt’,’w’); //打开文件info.txt
- fwrite($file,$info); //写入信息到info.txt
- fclose($file); //关闭文件info.txt
- //或直接用 file_put_content('info.txt',$info);
- ?>
以上的方法,可以把不同用户的phpinfo信息保存下来,这里我们可以着重看看这个方法的使用技巧,用这个方法可以实现生成静态页面的便利.
并且用这个方法比用file_get_conents()的方法更合理更有效率,简单的说个应用吧,比如想要把phpinfo()的内容写入文件,可以这样做:
- ob_start();
- $phpinfo = phpinfo();
- //写入文件
- ob_end_flush();
- 或者还有这样的用途:
- ob_start(); //打开缓冲区
- echo "Hellon"; //输出
- header("location:index.php"); //把浏览器重定向到index.php
- ob_end_flush();//输出全部内容到浏览器
header()会发送一段文件头给浏览器,但是如果在header()之前已经有了任何输出(包括空输出,比如空格,回车和换行)就会报错,但是如果输出在ob_start()和ob_end_flush()之间,就会没有问题,因为在输出前打开了缓冲区,echo后面的字符就不会输出到浏览器,而是保留在服务器,知道使用flush才会输出,所以header()会正常执行.
当然,ob_start()还可以有参数,参数就是一个回调函数,例子如下:
- <? php
- function callback($buffer)
- {
- // replace all the apples with oranges
- return (str_replace("apples", "oranges", $buffer));
- }
- ob_start("callback");
- ?>
- <html>
- <body>
- <P>It's like comparing apples to oranges.</P>
- </ body >
- </ html >
- <?php
- ob_end_flush();
- ?>
- 以上程序会输出:
- <html >
- <body>
- <p>It's like comparing oranges to oranges.</ p>
- </ body>
- </ html>
出处:http://www.phpfensi.com/php/20140702/3610.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式