亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

利用php的ob緩存機制實現(xiàn)頁面靜態(tài)化方法

 更新時間:2017年07月09日 18:51:18   投稿:jingxian  
下面小編就為大家?guī)硪黄胮hp的ob緩存機制實現(xiàn)頁面靜態(tài)化方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

首先介紹一下php中ob緩存常用到的幾個常用函數(shù)

ob_start():開啟緩存機制

ob_get_contents():獲取ob緩存中的內(nèi)容

ob_clean()清除ob緩存中的內(nèi)容,但不關(guān)閉緩存

ob_end_clean() 清除ob緩存中的內(nèi)容,并關(guān)閉緩存

ob_flush 清空緩存,輸出內(nèi)容,但不關(guān)閉緩存

ob_end_flush 清空緩存,輸出內(nèi)容,并關(guān)閉緩存

flush強制刷新輸出緩存中的內(nèi)容

按照http協(xié)議的規(guī)定,回應(yīng)內(nèi)容不能在回應(yīng)頭之前輸出,所以,如果在header()函數(shù)前面有內(nèi)容輸出,就會出現(xiàn)錯誤,但使用了ob_start()后就會將回應(yīng)內(nèi)容先放在ob緩存中,不會再消息頭發(fā)送之前被發(fā)送,就解決了header()報錯的問題!

下面說一下用php自帶的ob緩存機制實現(xiàn)頁面靜態(tài)化的方法,示例代碼如下

<?php
  
    $id=$_REQUEST['id'];
    
    //判斷緩存文件是否存在,如果存在,直接輸出
    if(file_exists('content'.$id.'.html')){
      echo file_get_contents('content'.$id.'.html');
      return;
    }
    
    //開啟緩存機制
    ob_start();
    
    //到數(shù)據(jù)庫中查詢所需要的內(nèi)容
    $conn=mysql_connect("localhost","root","root");
    mysql_select('db');
    mysql_query('set names utf8');
    
    $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;
    //將輸出的內(nèi)容保存到文件中,形成靜態(tài)頁面,在下次訪問的時候,直接讀取輸出
    file_put_contents('content'.$id.'.html',ob_get_contents());


?>

如上述代碼所示:

將我們查詢到的內(nèi)容直接保存到html文件中,如果文件存在,之間輸出,如果不存在,則訪問數(shù)據(jù)庫,執(zhí)行對應(yīng)的查詢過程

如果要設(shè)置文件的過期時間,可以在if語句里面加一個判斷條件,用于判斷緩存文件是否過期,time()-設(shè)置的過期時間

以上這篇利用php的ob緩存機制實現(xiàn)頁面靜態(tài)化方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論