PHP自動更新生成首頁
我們知道,訪問動態頁面是即時從服務器讀取數據的,當訪客越來越多的時候,速度會很慢,而生成的靜態頁面不僅速度快可以解決服務器的壓力問題,而且對于SEO搜索引擎來說也是非常友好的。
已經很少有人再采用動態直接讀取數據了,現在網頁基本上都是采用靜態html了,網站首頁可以說是訪問頻率最高的頁面了,當然也是更新頻率最高的地方,那么怎樣保證首頁即是靜態 html 文件,又可以及時進行更新就成為一個問題。
在更新夏日文章系統時,就遇到了這個問題,怎樣去觸發用戶自動更新首頁,首先了解一下源理,如果僅僅去更新首頁為靜態 html,那么很簡單,利用 php 操作文件函數 file_put_contents() 打開首頁進行讀取,再利用 php 操作文件的函數進行寫入,就可以直接生成靜態 html 文件,而這個操作都是后臺進行的,可是缺點是不能進行使用戶來觸發生成靜態首頁。
下面來理清一個思路,首先生成靜態頁面有了,那么怎樣自動更新首頁呢?其實自動更新首頁就是判斷時間,在 wp 系統中,就有自動發布文章的設置,例如下面代碼:if(format_date(time(),1)>"20131001″){echo "自動更新代碼";},20131001 更改為有一定規律的時間即可。
但我并不想使用上述的方法來實現,需要注意的事,這個生成首頁是用每次更新前的訪問用戶來觸發生成靜態首頁的,按照上述的原理,那么代碼就很簡單,用來更新首頁的完全夠了。
<?php
$nowtime=time();
$pastsec = $nowtime - $_GET["t"];
if($pastsec<30)
{
exit; //30秒更新一次,時間可以自己調整
}
ob_start(); //打開緩沖區
include("index.php"); //包含生成的文件,比如首頁
$content = ob_get_contents(); //得到緩沖區的內容
$content .= "< language=java
t=".$nowtime."\"></
file_put_contents("index.html",$content); //寫入生成 index.html
if (!function_exists("file_put_contents")) //讀取寫入
{
function file_put_contents($fn,$fs)
{
$fp=fopen($fn,"w+");
fputs($fp,$fs);
fclose($fp);
}
}
echo date("Y-m-d H:i:s"); //寫入生成時間
echo "靜態首頁成功更新!" //生成成功,實際應用中可刪除掉
?>
直接運行,你會發現首頁頁面下面出現"當前時間,靜態首頁成功更新"的文字,這時再看網站根目錄下,會多出一個 index.html 文件,這就是生成的靜態html文件了。打開這個文件,可以看到里面多出一段代碼:"<
t=1381743568″></
關鍵字:PHP、網站、根目錄、服務器
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解