頁面靜態(tài)化
1灰署、什么是PHP靜態(tài)化
PHP靜態(tài)化的簡單理解就是使網(wǎng)站生成頁面以靜態(tài)HTML的形式展現(xiàn)在用戶面前甥郑。
2渗钉、為什么要讓網(wǎng)頁靜態(tài)化
(1)加快頁面打開瀏覽速度郭厌,靜態(tài)頁面無需連接數(shù)據(jù)庫打開速度較動態(tài)頁面有明顯提高;
(2)有利于搜索引擎優(yōu)化SEO你踩,Baidu诅岩、Google都會優(yōu)先收錄靜態(tài)頁面;
(3)減輕服務(wù)器負(fù)擔(dān)带膜,瀏覽網(wǎng)頁無需調(diào)用系統(tǒng)數(shù)據(jù)庫吩谦;
(4)網(wǎng)站更安全,HTML頁面不會受php相關(guān)漏洞的影響膝藕,而且可以減少攻擊式廷,防sql注入;
(5)數(shù)據(jù)庫出錯(cuò)時(shí)束莫,不影響網(wǎng)站正常訪問懒棉。
3草描、相關(guān)函數(shù)
(1)ob_start函數(shù)一般主要是用來開啟緩存览绿,注意使用ob_start之前不能有任何輸出,如空格穗慕、字符等饿敲。
(2)ob_get_contents函數(shù)主要用來獲取緩存中的內(nèi)容以字符串形式返回,注意此函數(shù)必須在ob_end_clean函數(shù)之前調(diào)用逛绵,否則獲取不到緩存內(nèi)容怀各。
(3)ob_end_clean函數(shù)主要是清空緩存中的內(nèi)容并關(guān)閉緩存。
(4)ob_end_flush函數(shù)主要是沖刷緩存中的內(nèi)容并關(guān)閉緩存术浪。
4瓢对、php生成靜態(tài)化頁面方法
(1)使用PHP文件讀寫功能與ob緩存機(jī)制生成靜態(tài)頁面
見代碼如下
time()) ?false :true;if ($isTimeout) {//如果已經(jīng)過期? ? ? ? unlink($fileName);? ? ? ? ob_start();//從數(shù)據(jù)庫中讀取數(shù)據(jù)include'getData.php';//包含模板include'index_html.php';//獲取緩存內(nèi)容,并且寫入文件$content = ob_get_contents();//將緩存寫入文件? ? ? ? file_put_contents($fileName,$content);//沖刷緩沖區(qū)并且關(guān)閉緩存? ? ? ? ob_end_flush();? ? }else {//如果沒有過期? ? ? ? header('location:index.html');//echo file_get_contents($fileName);exit();? ? }}else {? ? ob_start();//從數(shù)據(jù)庫中讀取數(shù)據(jù)include'getData.php';//包含模板include'index_html.php';$content = ob_get_contents();//將緩存寫入文件? ? file_put_contents($fileName,$content);
ob_end_flush();
}
(2)使用nosql從內(nèi)存中讀取內(nèi)容(其實(shí)這個(gè)已經(jīng)不算靜態(tài)化了而是緩存)
將用戶經(jīng)常訪問的動態(tài)界面中需要使用到的數(shù)據(jù)庫中的數(shù)據(jù)緩存到memcached中或者Redis中胰苏,然后顯示的時(shí)候直接從緩存中讀取數(shù)據(jù)硕蛹,這樣提高了讀取速度。這個(gè)代碼比較簡單硕并,這里就不在介紹法焰。
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)倔毙,非商業(yè)轉(zhuǎn)載請注明出處埃仪。互聯(lián)網(wǎng)+時(shí)代陕赃,時(shí)刻要保持學(xué)習(xí)卵蛉,攜手千鋒PHP,Dream It Possible颁股。