提到PHP的内置缓存,我们第一印象应该就是ob_xxx这些函数,的确,php提供非常优秀的内置缓存函数,让我们能够实现页面的静态化编程,提高我们的网站访问速度,让我们网站能够适应更高并发的业务场景!
:-: ![](https://box.kancloud.cn/c3eed0d3069ac25a7df2fb692f635d28_110x110.png)
1、首先有四个函数
ob_start() 开启缓存
ob_get_contents() 获取缓冲区的内容
ob_clean() 删除缓冲区的内容
ob_get_clean() 先获取然后再删除缓冲区内容
2、然后我们定义一个函数来生成静态文件
~~~
/**定义一个缓存文件
* @author crazy
* @time 2018-03-14
*/
public function createCache(){
$action = ACTION_NAME;
$c_name = CONTROLLER_NAME;
$dir = './Cache/'.$c_name.'/'.$action.'/';
if(is_dir($dir)){
file_put_contents("$dir$action".'.shtml',ob_get_contents());
}else{
if(mkdir($dir,0777,true)){
file_put_contents("$dir$action".'.shtml',ob_get_contents());
}
}
}
~~~
3、根据文件目录是否存在然后我们做相应的重定向
~~~
$action = ACTION_NAME; //thinkphp的常量,功能是依托thinkphp进行示例
$c_name = CONTROLLER_NAME;
$dir = './Cache/'.$c_name.'/'.$action.'/'.$action.'.shtml';
if(file_exists($dir)){
header("Location:http://localhost/simengphp/$dir");
}
~~~
4、局部静态化
~~~
$.ajax({
url:'',
type:'get',
dataType:'json',
error: function () {
},
success:function(data){
$.each(data.result,function(key,val){
})
}
});
~~~
我们在我们的模板里面写上这个ajax获取页面内容的方法,然后我们调用这个页面的时候这个方法就会自动的创建了
# living example one
~~~
ob_start();
for($i=0;$i<10;$i++){
echo $i;
}
$output = ob_get_content();
ob_end_clean();
echo $output;
//output:0123456789
~~~
考点
1)ob缓存函数的使用
分析:
第一行ob_start 开启缓存缓冲区, ob_get_contents()获取缓冲区的内容,ob_end_clean(),清除并关闭,这时候在清除之前你已经获取然后并保存在了一个变量里面了,那么将输出0123456789
:-: ![](https://box.kancloud.cn/d8c29e5667c7cdfbc62772af7037fb16_640x423.jpg)
:-: ![](https://box.kancloud.cn/a88d11121e3cd3c9fe38855e622cd045_640x320.jpg)