1. 程式人生 > >頁面靜態化+過期時間

頁面靜態化+過期時間

程式碼:

<?php
Header("content-type:text/html;charset=UTF-8");
$gid = $_GET['news_id']+0;//商品id
$goods_statis_file = "goods_file_".$gid.".html";//對應靜態頁檔案
$expr = 10;//靜態檔案有效期,秒
if(file_exists($goods_statis_file)){
$file_ctime = filectime($goods_statis_file);//檔案建立時間
if($file_ctime+$expr > time()){//如果沒過期
echo file_get_contents($goods_statis_file);//輸出靜態檔案內容
exit;
}else{//如果已過期
unlink($goods_statis_file);//刪除過期的靜態頁檔案
ob_start(); //從資料庫讀取資料,並賦值給相關變數
//include ("xxx.html");//載入對應的商品詳情頁模板
echo date('Y-m-d H:i:s', time());
$content = ob_get_contents();//把詳情頁內容賦值給$content變數
file_put_contents($goods_statis_file,$content);//寫入內容到對應靜態檔案中
ob_end_flush();//輸出商品詳情頁資訊
}
}else{
$dsn = "mysql:host=127.0.0.1;dbname=seven_month";
$db = new PDO($dsn, 'root', 'root', array(PDO::ATTR_PERSISTENT =>true));
$db->query(" set names utf8 ");
set_time_limit(0);
$sql = "SELECT * FROM `news` ; ";
$data = $db->query($sql)->fetchAll(PDO::FETCH_ASSOC);
//開啟快取
ob_start();
include ('show.php');
//從資料庫讀取資料,並賦值給相關變數
//include ("xxx.html");//載入對應的商品詳情頁模板
$content = ob_get_contents();//把詳情頁內容賦值給$content變數
file_put_contents($goods_statis_file, $content);//寫入內容到對應靜態檔案中
ob_end_flush();//傳送內部緩衝區的內容到瀏覽器,刪除緩衝區的內容,關閉緩衝區。
}