小螞蟻學習頁面靜態化(2)——更新生成純靜態化頁面的三種方式

更新生成純靜態化頁面的三種方式:1.按照時間間隔更新。2.手動更新。3.定時更新(須要系統配合)。php

1. 按照時間間隔更新。linux

    當用戶第一次訪問這個頁面的時候,程序自動判斷,該靜態文件是否存在,而且該文件是否還在有效時間內,若是該文件未超出了有效時間,用戶訪問的是已經生成的靜態文件。若是超出了有效時間,用戶獲得的是動態輸出的內容,同時從新生成靜態文件。稍微修改一下昨天的代碼爲例:數據庫

<?php
//首先判斷是否有靜態文件,而且文件的最新修改時間到如今是否大於20秒
if(is_file('./text.php') && time()-filemtime('./text.php') <= 20){
	//條件成立,將已經生成的靜態文件輸出給用戶
	include_once('./text.php');
}else{
        //條件不成立,從新走數據庫,獲取數據,分配模板,輸出內容
	$arr	=	array(
			0=>array('title'=>'這裏是第一個標題'),
			1=>array('title'=>'這裏是第二個標題'),
			2=>array('title'=>'這裏是第三個標題'),
			3=>array('title'=>date('Y-m-d H:i:s'))
		);
	
        //緩衝區必需要在輸出以前開啓
	ob_start();
	//輸出模板
	include_once('./template.php');
        //輸出內容的同時生成靜態文件,注意使用的函數是ob_get_contents();
	file_put_contents('./text.php', ob_get_contents());
/*
	if(file_put_contents('./text.php', ob_get_contents()){
		echo 'success';
	}else{
		echo 'error';
	}
	*/
}
?>

2.手動更新靜態文件數組

    這個超級簡單,作一個按鈕,給它一個<a>標籤,連接到這個腳本便可,點擊一下按鈕,生成一個最新的靜態文件,邏輯代碼和昨天寫的如出一轍,爲了閱讀方便,我仍是把昨天的代碼複製一份兒過來吧。函數

<?php
        //按照常規套路的話,這個數組應該是從數據庫中拿到的
        //這裏爲了簡便就直接準備一個二位數組
	$arr	=	array(
			0=>array('title'=>'這裏是第一個標題'),
			1=>array('title'=>'這裏是第二個標題'),
			2=>array('title'=>'這裏是第三個標題')
		);
	
        //緩衝區必需要在輸出以前開啓
	ob_start();
	//把模板文件引入
	include_once('./template.php');
        //從緩衝區拿到文件,寫到本地保存起來
	if(file_put_contents('./text.php', ob_get_clean())){
		echo 'success';
	}else{
		echo 'error';
	}
?>

3.定時更新(這個須要藉助linux系統)spa

命令行    crontab    -e    編輯    crontab命令行

*/1 * * * * php /index.php    每一分鐘執行一次index.php腳本日誌

五個*分別表示:分    時    日    月    周code

查看crontab日誌能夠查詢是否生成靜態文件。命令: tail -f    /var/log/cron.log  
crontab

相關文章
相關標籤/搜索