下面编程学习网小编就为大家带来一篇利用php的ob缓存机制实现页面静态化方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧下面编程学习网小编就为大家带来一篇利用php的ob缓存机制实现页面静态化方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 首先介绍一下php中ob缓存常用到的几个常用函数 ob_start():开启缓存机制
首先介绍一下php中ob缓存常用到的几个常用函数
ob_start():开启缓存机制
ob_get_contents():获取ob缓存中的内容
ob_clean()清除ob缓存中的内容,但不关闭缓存
ob_end_clean() 清除ob缓存中的内容,并关闭缓存
ob_flush 清空缓存,输出内容,但不关闭缓存
ob_end_flush 清空缓存,输出内容,并关闭缓存
flush强制刷新输出缓存中的内容
按照http协议的规定,回应内容不能在回应头之前输出,所以,如果在header()函数前面有内容输出,就会出现错误,但使用了ob_start()后就会将回应内容先放在ob缓存中,不会再消息头发送之前被发送,就解决了header()报错的问题!
下面说一下用php自带的ob缓存机制实现页面静态化的方法,示例代码如下
<?php
$id=$_REQUEST['id'];
//判断缓存文件是否存在,如果存在,直接输出
if(file_exists('content'.$id.'.html')){
echo file_get_contents('content'.$id.'.html');
return;
}
//开启缓存机制
ob_start();
//到数据库中查询所需要的内容
$conn=mysql_connect("localhost","root","root");
mysql_select('db');
mysql_query('set names utf8');
$sql="select content from table_name where id=$id";
$res=mysql_query($sql);
$row=mysql_fetch_assoc($res);
$content=$row[0];
mysql_free_result($res);
mysql_close($conn);
echo $content;
//将输出的内容保存到文件中,形成静态页面,在下次访问的时候,直接读取输出
file_put_contents('content'.$id.'.html',ob_get_contents());
?>
如上述代码所示:将我们查询到的内容直接保存到html文件中,如果文件存在,之间输出,如果不存在,则访问数据库,执行对应的查询过程
如果要设置文件的过期时间,可以在if语句里面加一个判断条件,用于判断缓存文件是否过期,time()-设置的过期时间
织梦狗教程
本文标题为:利用php的ob缓存机制实现页面静态化方法


基础教程推荐
猜你喜欢
- TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例 2023-01-19
- TP5 连接多个数据库及使用方法 2023-08-30
- PHP实现生成数据字典功能示例 2022-10-18
- PHP使用SMTP邮件服务器发送邮件示例 2022-11-16
- PHP数据加密方式梳理介绍 2023-07-03
- laravel model模型定义实现开启自动管理时间created_at,updated_at 2023-03-02
- php中使用array_filter()函数过滤数组实例讲解 2023-05-19
- thinkPHP3.2.2框架行为扩展及demo示例 2022-11-07
- PHP删除数组中指定值的元素常用方法实例分析【4种方法】 2022-11-12
- PHP实现创建一个RPC服务操作示例 2023-04-01