php處理靜態(tài)頁面:頁面設(shè)置緩存時(shí)間實(shí)例
通過PHP去生成一個(gè)純靜態(tài)的頁面:http://www.dhdzp.com/article/116814.htm
問:如何觸發(fā)系統(tǒng)生成純靜態(tài)化頁面?
1.頁面添加緩存時(shí)間
2.手動(dòng)觸發(fā)的方式
3.crontab定時(shí)掃描程序
我們來實(shí)現(xiàn)方案一:頁面添加緩存時(shí)間
用戶請(qǐng)求頁面 => 頁面是否過期 => => 否(獲取靜態(tài)頁面) || =>是(動(dòng)態(tài)頁面生成一份新的靜態(tài)頁面)
if( 如果存在這個(gè)靜態(tài)文件 && 沒有過期){
// 獲取頁面
}else{
// 重新生成一份靜態(tài)頁面
}
ok,基本邏輯就是如此,下面我們完善代碼:
<?php
if(is_file('./index.html') && (time()-filemtime('./index.html')) < 60){
// 假設(shè)緩存時(shí)間是60秒
// 獲取頁面
require_once('./index.html');
}else{
// 重新生成一份靜態(tài)頁面
// 準(zhǔn)備要展示到網(wǎng)頁的數(shù)據(jù)
$data = array(
array('id'=>1,'msg'=>'hello java'),
array('id'=>2,'msg'=>'hello php'),
array('id'=>3,'msg'=>'hello python'),
);
// 渲染到模板
// 實(shí)際項(xiàng)目一般是在html里渲染
// 這里演示 希望能看懂
ob_start(); // 開始輸入緩沖控制
foreach($data as $item){
echo $item['id'].'===>'.$item['msg'].'<br/>';
}
// 開始生成靜態(tài)頁面文件
file_put_contents('index.html',ob_get_contents());
}
這樣我們?cè)L問index.php,如果靜態(tài)文件緩存沒有過期,其實(shí)質(zhì)訪問的內(nèi)容來自index.html這個(gè)靜態(tài)文件。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP實(shí)現(xiàn)與java 通信的插件使用教程
這篇文章主要介紹了PHP與java 通信插件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。2019-08-08
PHP中最容易忘記的一些知識(shí)點(diǎn)總結(jié)
本篇文章總結(jié)出了一部分,PHP中最容易忘記的一些知識(shí)點(diǎn)。需要的朋友參考下2013-04-04
php從數(shù)據(jù)庫中獲取數(shù)據(jù)用ajax傳送到前臺(tái)的方法
今天小編就為大家分享一篇php從數(shù)據(jù)庫中獲取數(shù)據(jù)用ajax傳送到前臺(tái)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
PHP實(shí)現(xiàn)中國(guó)公民身份證號(hào)碼有效性驗(yàn)證示例代碼
這篇文章主要介紹了PHP實(shí)現(xiàn)中國(guó)公民身份證號(hào)碼有效性驗(yàn)證示例代碼,可以判斷身份證號(hào)碼的正確性,非常具有實(shí)用價(jià)值2017-05-05
php curl獲取到j(luò)son對(duì)象并轉(zhuǎn)成數(shù)組array的方法
今天小編就為大家分享一篇php curl獲取到j(luò)son對(duì)象并轉(zhuǎn)成數(shù)組array的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05

