国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

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

2024-05-04 23:58:38
字體:
供稿:網(wǎng)友

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

ob_start():開啟緩存機(jī)制

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強(qiáng)制刷新輸出緩存中的內(nèi)容

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

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

<?php      $id=$_REQUEST['id'];        //判斷緩存文件是否存在,如果存在,直接輸出    if(file_exists('content'.$id.'.html')){      echo file_get_contents('content'.$id.'.html');      return;    }        //開啟緩存機(jī)制    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)頁面,在下次訪問的時(shí)候,直接讀取輸出    file_put_contents('content'.$id.'.html',ob_get_contents());?>

如上述代碼所示:

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

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

以上這篇利用php的ob緩存機(jī)制實(shí)現(xiàn)頁面靜態(tài)化方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到PHP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 天水市| 鱼台县| 浙江省| 合山市| 沁阳市| 黔南| 黄石市| 五常市| 镶黄旗| 双柏县| 吉安市| 南木林县| 崇阳县| 清水河县| 泰州市| 宜宾县| 信阳市| 吉木萨尔县| 平阳县| 泰和县| 崇礼县| 汾西县| 衡水市| 保亭| 麻江县| 奉节县| 上犹县| 承德市| 仙桃市| 东乡族自治县| 托克逊县| 贞丰县| 涞源县| 呼伦贝尔市| 福泉市| 右玉县| 蕲春县| 灵宝市| 浦城县| 新昌县| 咸阳市|