php的快取機制實作頁面靜態化程式碼分享

小云云
發布: 2023-03-20 06:32:01
原創
1492 人瀏覽過

本文主要為大家帶來一篇利用php的ob快取機制實作頁面靜態化方法。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。

首先介紹php中ob快取常用到的幾個常用函數

ob_start():開啟快取機制

ob_get_contents():取得ob快取中的內容

ob_clean()清除ob快取中的內容,但不關閉快取

ob_end_clean() 清除ob快取中的內容,並關閉快取

ob_flush 清空緩存,輸出內容,但不關閉快取

ob_end_flush 清空緩存,輸出內容,並關閉快取

flush強制刷新輸出快取中的內容

依照http協定的規定,回應內容不能在回應頭之前輸出,所以,如果在header()函數前面有內容輸出,就會出現錯誤,但使用了ob_start()後就會將回應內容先放在ob快取中,不會再訊息頭發送之前被發送,就解決了header()報錯的問題!

下面說一下用php自帶的ob快取機制實作頁面靜態化的方法,範例程式碼如下

<?php
  
    $id=$_REQUEST[&#39;id&#39;];
    
    //判断缓存文件是否存在,如果存在,直接输出
    if(file_exists(&#39;content&#39;.$id.&#39;.html&#39;)){
      echo file_get_contents(&#39;content&#39;.$id.&#39;.html&#39;);
      return;
    }
    
    //开启缓存机制
    ob_start();
    
    //到数据库中查询所需要的内容
    $conn=mysql_connect("localhost","root","root");
    mysql_select(&#39;db&#39;);
    mysql_query(&#39;set names utf8&#39;);
    
    $sql="select content from table_name where id=$id";
    $res=mysql_query($sql);
    $row=mysql_fetch_assoc($res);
    $content=$row[0];
    
    mysql_free_result($res);
    mysql_close($conn);
    echo $content;
    //将输出的内容保存到文件中,形成静态页面,在下次访问的时候,直接读取输出
    file_put_contents(&#39;content&#39;.$id.&#39;.html&#39;,ob_get_contents());


?>
登入後複製

如上述程式碼所示:

將我們查詢到的內容直接儲存到html檔案中,如果檔案存在,之間輸出,如果不存在,則存取資料庫,執行對應的查詢過程

如果要設定檔案的過期時間,可以在if語句裡面加一個判斷條件,用於判斷快取檔案是否過期,time()-設定的過期時間。

相關推薦:

PHP頁面靜態化實例分享

#ThinkPHP3.2.3頁靜態化實作方法

#php頁面靜態化實作的幾個分享

以上是php的快取機制實作頁面靜態化程式碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!