2022-12-26 分類: 網站建設
靜態化的好處:雖然百度表示不歧視動態網址,但是動態帶參的網址仍然容易將Baiduspider帶入黑洞,從而被百度放棄,不利于SEO。除了利于SEO,頁面靜態化還能減輕服務器的訪問壓力,降低數據庫的讀寫壓力,利于性能優化。其三,靜態化還能防止SQL注入攻擊。
靜態化的分類:偽靜態和真靜態
偽靜態化:通過修改URL使得動態URL看上去像靜態URL,從而達到親近搜索引擎的目的。例如:
動態URL:http://localhost/news.php?lang=cn&class=1&id=2
靜態URL:http://localhost/news-cn-sport-id2.html
真靜態化:通過模版引擎生成靜態html文件或通過ob緩存靜態化。
【注】頁面靜態化需要偽靜態化和真靜態化結合使用,從而達到最終靜態化的目的。靜態化雖好,但不是所有地方都適用,需要自行判斷優劣。
利用ob緩存實現真靜態化詳解:
Ob緩存:php自帶的緩存,默認開啟,可以在php.ini文件中查看是否開啟。如果ob緩存關閉,那么只有程序緩存,header函數前輸出任何內容都會導致程序報錯。
Php中操作ob緩存的相關函數:
//開啟ob緩存
ob_start();
//把ob內容緩存清空,但是ob緩存還在
ob_clean();
//把ob內容緩存清空,同時關閉ob緩存
ob_end_clean();
//把ob緩存的內容,刷新到程序緩存,同時關閉ob緩存
ob_end_flush();
//把ob緩存的內容,刷新到程序緩存,不關閉ob緩存
ob_flush();
//獲取ob緩存內容
$con=ob_get_contents();
//需要把靜態頁,寫入文件.echoprint_rvar_dump,寫文件,下斷點.
file_put_contents("d://test.html",$con);
該函數是把程序緩存的內容,強制刷新到瀏覽器
//flush();
下面是一個新聞發布系統,類似這種一旦發布更新不大的系統非常適合靜態化。
靜態化的時機可以選擇發布時,或者第一次查看。由于后臺發布系統和前臺查看系統在兩臺不同的服務器上,因此本例是在第一次查看的時候靜態化的。數據庫中除了必要的標題、內容字段外,另外新增了一個靜態化標志,用于判斷是否靜態化。新聞新增和修改的時候會置為0,靜態化的時候會置為1。
代碼邏輯結構:
外層if判斷服務器中靜態文件是否存在,以id命名。
如果存在
內層if判斷靜態化標志是否為1,
如果為1(表示已經靜態化,且無修改)
直接返回該文件;
如果不為1(表示未靜態化,有修改)
打開ob緩存,讀取文章內容,和模版信息,生成要返回的html代碼,并把內容輸出到html文件中,更新靜態化標志為1,重定向到靜態html文件。
如果不存在
打開ob緩存,讀取文章內容,和模版信息,生成要返回的html代碼,并把內容輸出到html文件中,更新靜態化標志為1,重定向到靜態html文件。
具體代碼如下:
本文名稱:php干貨丨深度解析靜態化的好處
地址分享:http://m.newbst.com/news23/225473.html
成都網站建設公司_創新互聯,為您提供動態網站、營銷型網站建設、云服務器、品牌網站建設、品牌網站設計、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容