1. 文章
  2. 文章详情

PHP ob相关函数的使用方法

php提供非常优秀的内置缓存函数,让我们能够实现页面的静态化编程,提高我们的网站访问速度。

四个函数

ob_start()  开启缓存
ob_get_contents() 获取缓冲区的内容
ob_clean() 删除缓冲区的内容
ob_get_clean()  先获取然后再删除缓冲区内容

定义一个函数来生成静态文件

/**定义一个缓存文件
 * @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());
        }
    }
}

根据文件目录是否存在然后我们做相应的重定向

$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");
}

局部静态化

$.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

ob缓存函数的使用

第一行ob_start 开启缓存缓冲区, ob_get_contents()获取缓冲区的内容,ob_end_clean(),清除并关闭,这时候在清除之前你已经获取然后并保存在了一个变量里面了,那么将输出0123456789

参考:https://zhuanlan.zhihu.com/p/35775612

发表评论

登录后才能评论

评论列表(0条)