提到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)