1. 程式人生 > >你應該這個姿勢學習php(3)

你應該這個姿勢學習php(3)

php

1、ob_start()

開啟文件緩存

2、ob_get_contents()

得到緩存中的內存

3、ob_get_length()

得到緩沖區的長度

4、ob_flush()

輸出緩沖區的內容,如果你想獲取緩沖區的內容要在這個函數之前使用ob_get_contents(),不然數據將會被清空

5、ob_end_flush()

輸出緩沖區並關閉緩存

6、ob_end_clean()

清除緩存並關閉輸出緩沖,如果這個再ob_start()開啟之後不執行這個函數時候,那麽將一直寫入緩沖區

下面我們來寫一個頁面靜態化示例來練練手,本案例是依托thinkphp框架進行講解,其他框架小夥伴們自行腦補!

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;

$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獲取頁面內容的方法,然後我們調用這個頁面的時候這個方法就會自動的創建了

你應該這個姿勢學習php(3)