色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

簡(jiǎn)單實(shí)用的網(wǎng)站PHP緩存類(lèi)實(shí)例

緩存技術(shù)在實(shí)際使用當(dāng)中應(yīng)用非常廣泛,可以有效減輕對(duì)服務(wù)器數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)壓力,提高運(yùn)行速度。目前很多CMS內(nèi)容管理系統(tǒng)中頻繁使用緩存機(jī)制來(lái)提高系統(tǒng)運(yùn)行的效率。本文以一個(gè)簡(jiǎn)單實(shí)用的緩存類(lèi)為例,幫助大家參考下緩存的機(jī)制與寫(xiě)法。

緩存文件cache.php代碼如下:

<?php  /* 用戶(hù)需要事先定義的常量: _CachePath_    模板緩存路徑 _CacheEnable_    自動(dòng)緩存機(jī)制是否開(kāi)啟,未定義或?yàn)榭眨硎娟P(guān)閉自動(dòng)緩存機(jī)制 _ReCacheTime_    自動(dòng)重新緩存間隔時(shí)間,單位為秒,未定義或?yàn)榭眨硎娟P(guān)閉自動(dòng)重新緩存 */  class cache  {   var $cachefile;    var $cachefilevar;    function cache()    {      //生成當(dāng)前頁(yè)的Cache組文件名 $this->cachefilevar 及文件名 $this->cachefile      //動(dòng)態(tài)頁(yè)的參數(shù)不同對(duì)應(yīng)的Cache文件也不同,但是每一個(gè)動(dòng)態(tài)頁(yè)的所有Cache文件都有相同的文件名,只是擴(kuò)展名不同      $s=array(".","/");$r=array("_","");      $this->cachefilevar=str_replace($s,$r,$_SERVER["SCRIPT_NAME"])."_".$_GET[_ActionVar_];      $this->cachefile=$this->cachefilevar.".".md5($_SERVER["REQUEST_URI"]);    }    //刪除當(dāng)前頁(yè)/模塊的緩存    function delete()    {      //刪除當(dāng)前頁(yè)的緩存      $d = dir(_CachePath_);      $strlen=strlen($this->cachefilevar);      //返回當(dāng)前頁(yè)的所有太原264醫(yī)院Cache文件組      while (false !== ($entry = $d->read()))      {        if (substr($entry,0,$strlen)==$this->cachefilevar)        {          if (!unlink(_CachePath_."/".$entry)) {echo "Cache目錄無(wú)法寫(xiě)入";exit;}        }      }    }    //判斷是否已Cache過(guò),以及是否需要Cache    function check()    {      //如果設(shè)置了緩存更新間隔時(shí)間 _ReCacheTime_      if (_ReCacheTime_+0>0)     {        //返回當(dāng)前頁(yè)Cache的最后更新時(shí)間        $var=@file(_CachePath_."/".$this->cachefilevar);$var=$var[0];        //如果更新時(shí)間超出更新間隔時(shí)間則刪除Cache文件        if (time()-$var>_ReCacheTime_)        {          $this->delete();$ischage=true;        }      }      //返回當(dāng)前頁(yè)的Cache      $file=_CachePath_."/".$this->cachefile;      //判斷當(dāng)前頁(yè)Cache是否存在 且 Cache功能是否開(kāi)啟      return (file_exists($file) and _CacheEnable_ and !$ischange);    }    //讀取Cache    function read()    {      //返回當(dāng)前頁(yè)的Cache      $file=_CachePath_."/".$this->cachefile;      //讀取Cache文件的內(nèi)容      if (_CacheEnable_) return readfile($file);      else return false;    }    //生成Cache    function write($output)    {      //返回當(dāng)前頁(yè)的Cache      $file=_CachePath_."/".$this->cachefile;      //如果Cache功能開(kāi)啟      if (_CacheEnable_)      {        //把輸出的內(nèi)容寫(xiě)入Cache文件        $fp=@fopen($file,'w');        if (!@fputs($fp,$output)) {echo "模板Cache寫(xiě)入失敗";exit;}        @fclose($fp);        //如果設(shè)置了緩存更新間隔時(shí)間 _ReCacheTime_        if (_ReCacheTime_+0>0)        {          //更新當(dāng)前頁(yè)Cache的最后更新時(shí)間          $file=_CachePath_."/".$this->cachefilevar;          $fp=@fopen($file,'w');          if (!@fwrite($fp,time())) {echo "Cache目錄無(wú)法寫(xiě)入";exit;}          @fclose($fp);        }      }    }  }  ?>

緩存類(lèi)的使用:

<?php    define("_CachePath_","./cache/");    define("_CacheEnable_","1");    define("_ReCacheTime_","43200");    include('cache.php');    $cache=new cache();    if ($cache->check())    {      $template=$cache->read();    }   else    {      ob_start();      ob_implicit_flush(0);  ?>    此處為頁(yè)面內(nèi)容。。。。  <?php      $template = ob_get_contents();      $cache->write($template);    }  ?>

php技術(shù)簡(jiǎn)單實(shí)用的網(wǎng)站PHP緩存類(lèi)實(shí)例,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 万载县| 栖霞市| 皮山县| 新龙县| 吉木萨尔县| 麻栗坡县| 鄱阳县| 杭锦后旗| 汶上县| 金阳县| 韶山市| 旬阳县| 钟祥市| 丰宁| 贵德县| 佛冈县| 巴青县| 凌源市| 沾益县| 新津县| 台中县| 漾濞| 嘉义市| 苏尼特左旗| 清水河县| 阿坝县| 武功县| 德庆县| 合江县| 沂水县| 定南县| 丽水市| 长岭县| 永平县| 栖霞市| 平塘县| 西乌珠穆沁旗| 林口县| 阿克陶县| 屏山县| 隆化县|