php頁面靜態化
php靜態化的簡單理解就是使**生成頁面以靜態html的形式展現在訪客面前,php靜態化分純靜態化和偽靜態化,兩者的區別在於php生成靜態頁面的處理機制不同。
為什麼要頁面靜態化
一、加快頁面開啟瀏覽速度,靜態頁面無需連線資料庫開啟速度較動態頁面有明顯提高;
二、有利於搜尋引擎優化seo,baidu、google都會優先收錄靜態頁面,不僅被收錄的快還收錄的全;
三、減輕伺服器負擔,瀏覽網頁無需呼叫系統資料庫;
四、**更安全,html頁面不會受php相關漏洞的影響; **一下大一點的**基本全是靜態頁面,而且可以減少攻擊,防sql注入。
資料庫出錯時,不影響**正常訪問。
生成html文章雖操作上麻煩些,程式上繁雜些,但為了更利於搜尋,為了速度更快些,更安全,這些犧牲還是值得的。
利用php模板生成靜態頁面
php模板實現靜態化非常方便,比如安裝和使用php smarty實現**靜態化,也可以自己寫一套模板解析規則,常見的可以模仿各類cms的模板規則。
1.使用php檔案讀寫功能與ob快取機制生成靜態頁面
比如某個商品的動態詳情頁位址是:
那麼這裡我們根據這個位址讀取一次這個詳情頁的內容,然後儲存為靜態頁,下次有人訪問這個商品詳情頁動態位址時,我們可以
直接把已生成好的對應靜態內容檔案輸出出來。
time())else
}else
?>
2.使用nosql從記憶體中讀取內容(其實這個已經不算靜態化了而是快取);
以memcache為例:
connect('memcache_host', 11211);
$mem_goods_content = $mem->get($goods_statis_content);
if($mem_goods_content)else
?>
memcached是鍵值一一對應,key預設最大不能超過128個位元組,value預設大小是1m,因此1m大小滿足大多數網頁大小的儲存。
p>
我們知道使用php進行**開發,一般執行結果直接輸出到遊覽器,為了使用php生成靜態頁面,就需要使用輸出控制函式控制快取區,以便獲取快取區的內容,然後再輸出到靜態html頁面檔案中以實現**靜態化。
php生成靜態頁面的思路為:首先開啟快取,然後輸出了html內容(你也可以通過include將html內容以檔案形式包含進來),之後獲取快取中的內容,清空快取後通過php檔案讀寫函式將快取內容寫入到靜態html頁面檔案中。php檔案讀寫教程?
獲得輸出的快取內容以生成靜態html頁面的過程需要使用三個函式:ob_start()、ob_get_contents()、ob_end_clean()。
知識點:
1、ob_start函式一般主要是用來開啟快取,注意使用ob_start之前不能有任何輸出,如空格、字元等。
2、ob_get_contents函式主要用來獲取快取中的內容以字串形式返回,注意此函式必須在ob_end_clean函式之前呼叫,否則獲取不到快取內容。
3、ob_end_clean函式主要是清空快取中的內容並關閉快取,成功則返回true,失敗則返回false
php輸出控制函式(output control)有很多應用,今後將陸續展開。
至此,使用php生成靜態html頁面以實現**靜態化的方法就介紹完了,根據實際情況和需求你可以選擇不同的靜態化方法。
php頁面靜態化
目前cms系統多採用了頁面靜態化,這樣做的好處是 一是能減輕其伺服器的負擔,二是因為生成了html靜態頁面,所以其 被搜尋引擎搜尋到的機率更大一些,也就是為了 推廣。1 頁面靜態化分類 真靜態 通過程式生成靜態頁面檔案,當我們訪問的時候,就是直接訪問的靜態頁面。偽靜態 是動態的 看起來像靜態的 換句...
php 頁面靜態化
php靜態化的簡單理解就是使 生成頁面以靜態html的形式展現在訪客面前,php靜態化分純靜態化和偽靜態化。兩者的區別在於php生成靜態頁面的處理機制不同。1.ob快取實現 頁面在輸出之前,會將輸出資料暫時存放到buffer 緩衝器 中,然後才會輸出到頁面,所以buffer中的資料就是php 執行後...
PHP頁面靜態化
php頁面靜態化 在我們開發 時候,為了能夠讓更多的使用者看見,展現 除了做付費推廣還有乙個重要的角色就是給 做排名也就是 seo 那麼在對於我們開發時,應該注意的就是盡量把頁面做靜態化,因為在蜘蛛爬取的時候他更喜歡靜態鏈結,更容易爬,那麼我下邊具體說一下,如何實現頁面靜態化。首先,我們先看一下動態...