你應該這個姿勢學習php(3)
阿新 • • 發佈:2018-04-24
php1、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)