日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

一個PHP簡單文件緩存類

瀏覽:301日期:2022-09-13 11:14:19

緩存的工作原理

緩存的工作原理其實并不復雜。它的核心思想是:首先,我們將需要顯示的內容存儲在一個文本文件(即緩存文件)之中。然后,如果有用戶請求某個頁面的內容,我們首先檢查此頁對應的緩存(即那個文本文件)是否存在——如果存在且為最新的緩存文件,那么直接將這個文本文件中的內容輸出到客戶端供用戶查看;如果此頁對應的緩存文件不存在或緩存生成的時間不符合要求(太舊),那么直接執行一次此頁對應的PHP文件,并將顯示內容存儲在緩存文件中。重復上述流程。這樣一來,雖然增加了PHP代碼,但我們最大程度的節省了PHP鏈接到數據庫再提取數據的時間。

接下來,我們編寫一個PHP緩存類來實現以上緩存原理。

任務目標

我們將創建的緩存類包含3個非常重要的過程函數:

starteCache()endCache()cleanCache()

PHP緩存類基本骨架

在我們具體編寫這3個過程函數之前,我們需要創建這個PHP類的基本骨架,比如類的內外部變量;我們需要創建這個緩存類的一些變量,以方便使用時控制緩存功能的表現,請注意查看下面代碼中的注釋:

<?phpclass Cache { var $status = true; // 值為True表示開啟緩存;值False表示關閉緩存功能。 var $cacheDir = ’cache/’; //存放緩存文件的默認目錄 var $cacheFile = ’’; //緩存文件的真實文件名 var $timeOut = 1000; // 內容被重復使用的最長時限 var $startTime = 0;// 程序執行的開始時間 var $caching = true; // 是否需要對內容進行緩存;值為False表示直接讀取緩存文件內容}?>

除了以上變量聲明外,我們還定義了一個常用函數用于獲取執行此類所花費的時間。這就是getMicroTime()過程函數,如下:

<?php function getMicroTime() { list($usec, $sec) = explode(' ',microtime()); return ((float)$usec + (float)$sec); }?>

過程函數startCache()

現在我們開始編寫這個緩存類中最重要的一個過程函數。函數startCache()的作用如下:

保存緩存類執行的檢查緩存文件是否存在以及緩存文件的時限(是否過期)。如果緩存文件存在且沒有超過最長時限,那么顯示文件中的內容并退出 。如果緩存文件不存在,那么置緩存標志Caching為False。

函數代碼如下:

<?php function startCache(){ $this->startTime = $this->getMicroTime(); ob_start(); if ($this->status){ $this->cacheFile = $this-&gt;cacheDir.urlencode( $_SERVER[’REQUEST_URI’] ); if ( (file_exists($this->cacheFile)) &&((fileatime($this->cacheFile) + $this->timeOut)> time()) ) { //從緩存文件中讀取內容 $handle = fopen($this->cacheFile , 'r'); $html = fread($handle,filesize($this->cacheFile)); fclose($handle); // 顯示內容 echo $html; // 顯示程序執行時間 echo ’<p>Total time: ’ .round(($this->getMicroTime())-($this->startTime),4).’</p>’;//退出程序 exit(); } else { //置緩存標志caching為true $this->caching = true; } } }?>

過程函數endCache()

如果實際頁面尚未被緩存,并且caching標志被設置成True;那么此函數將首先將頁面中的所有輸出保存成緩存文件,然后顯示頁面。同樣的,這個函數也會顯示頁面執行時間。我們可以在大數據量的情況下通過對比執行時間,發現緩存的優點。

<?php function endCache(){ if ($this->status){ if ( $this->caching ) { //首先輸出頁面內容,然后將輸出內容保存在緩存文件中 $html = ob_get_clean(); echo $html; $handle = fopen($this->cacheFile, ’w’ ); fwrite ($handle, $html ); fclose ($handle); //顯示頁面執行時間echo ’<p>Total time: ’.round(($this->getMicroTime()-$this->startTime),4).’</p>’; } } } ?>

過程函數cleanCache()

這是核心函數的最后一個,也非常簡單。此函數僅檢查緩存文件夾是否存在,并移除對應的緩存文件。

<?php function cleanCache(){if ($handle = opendir($this->cacheDir)) { while (false !== ($file = readdir($handle))) { if (is_file($this->cacheDir.$file)) unlink($this->cacheDir.$file); } closedir($handle); } }?>

此PHP緩存類的使用

如果你希望完整的使用此PHP緩存類,你需要稍微對它進行功能拓展,但基本的功能它已經具備了。

在需要用到緩存的頁面中,首先你需要導入我們已經編寫好的緩存類,然后創建一個緩存類對象。在創建好的對象基礎上,調用startCache() 函數,接著在這個函數下方你可以輸出你想輸出的內容,包括文字和HTML代碼。最后,在頁面的最下方,調用 endCache() 函數。這樣,處于StartCache()函數和EndCache()函數之間的任何輸出(比如echo,print,HTML代碼)都將作為緩存寫入緩存文件之中。

以下為使用此緩存類進行緩存的一個簡單示例:

<?php //導入緩存類 require_once(’cache.class.php’); //創建一個緩存類對象CacheManager $CacheManager = new Cache(); //調用startCache方法,表示開始緩存 $CacheManager->startCache(); //以下區塊所有echo內容都將作為緩存寫入緩存文件中 echo 'Start Cache example at: '.date(’H:i:s’).'<br/>'; sleep(2); echo 'End Cache example at: '.date(’H:i:s’).'<br/>'; echo '<br/><a href=’clear.php’>Clean the cache</a><br/>'; //以上區塊所有echo內容都將作為緩存寫入緩存文件中 $CacheManager->endCache();?>

標簽: PHP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产女人18毛片水真多18精品| 国产精品一国产精品k频道56| 免费视频一区二区三区在线观看| 欧美一区成人| 日韩激情网站| 欧美日韩黄网站| 一区二区精彩视频| 亚洲另类视频| 国产乱码精品一区二区三区亚洲人| 欧美一级全黄| 久久精品99国产精品| 国产精品手机在线播放| 国产精品视频一区二区三区四蜜臂 | 日产欧产美韩系列久久99| 亚洲一区二区小说| 欧美精品三级在线| 欧美视频久久| 精品少妇av| 肉色欧美久久久久久久免费看| 999久久久国产精品| 视频一区二区三区中文字幕| 日韩在线黄色| 精品一区二区三区在线观看视频| 97精品国产福利一区二区三区| 青青青免费在线视频| 不卡在线一区二区| 亚洲精品在线国产| 久久超碰99| 成人精品中文字幕| 三级欧美韩日大片在线看| 日韩午夜视频在线| 精品视频一区二区三区四区五区 | 国产精品一区免费在线| 国产一区一一区高清不卡| 国产日韩一区二区三区在线播放| 国产精品尤物| 日本精品在线播放| 视频一区国产视频| 精品深夜福利视频| 国产精品久久777777毛茸茸| 国产精品男女| 日韩中文影院| 免费黄网站欧美| 国产精品久久久久77777丨| 日韩黄色大片| 日韩视频一区| 国产乱码精品一区二区三区亚洲人| 另类专区亚洲| 麻豆精品91| 日韩成人精品一区二区| 麻豆9191精品国产| 国产一区二区三区四区大秀| 亚洲黄色影院| 国产精品极品| 亚洲男女av一区二区| 国产欧美日韩影院| 久久久精品网| 国产精品激情| 日韩视频一区| 精品视频在线你懂得| 红桃视频国产一区| 麻豆一区在线| 亚洲一区二区毛片| 国产一区二区三区国产精品| 亚洲欧美视频| 福利视频一区| 日本在线一区二区三区| 成人啊v在线| 国产人成精品一区二区三| 99久久精品网| 久久xxx视频| 日韩在线一区二区| 成人午夜精品| 免费在线亚洲| 亚洲日韩视频| 另类中文字幕国产精品| 69堂精品视频在线播放| 国产精品88久久久久久| 色婷婷亚洲mv天堂mv在影片| 日韩高清在线不卡| 免费精品国产的网站免费观看| 欧美成人精品午夜一区二区| 日日摸夜夜添夜夜添国产精品| 亚洲二区在线| 高清日韩欧美| 国产欧美91| 日本一区免费网站| 午夜一级在线看亚洲| 日韩毛片视频| 麻豆精品视频在线观看| 在线精品一区二区| 亚洲精品2区| 欧美日韩在线二区| 成人在线视频免费| 国产福利一区二区精品秒拍| 日韩高清在线不卡| 一区二区三区网站| 国产一级久久| 99久久久国产精品美女| av在线最新| 精品国产网站| 国产精品观看| 91成人精品观看| 亚州av日韩av| 国产免费成人| 99国产一区| 99热精品久久| 国产超碰精品| 亚洲91精品| 久久激情婷婷| 99久久精品网| 激情婷婷亚洲| 国产精品av一区二区| 欧美sss在线视频| 欧美成a人国产精品高清乱码在线观看片在线观看久| 国产精品免费不| 国产图片一区| 国产精品嫩模av在线| 久久国产精品免费一区二区三区| 日韩欧美激情| 欧美久久精品| 亚洲精品麻豆| 免费观看久久久4p| 亚洲制服一区| 日本不卡的三区四区五区| 深夜福利一区| 天堂久久一区| 欧美日韩一区二区三区四区在线观看 | 涩涩av在线| 福利一区二区| 日韩免费视频| 欧美亚洲精品在线| www.51av欧美视频 | 精品国产91| 国产精选在线| 日韩一区二区三区免费| 欧美一区二区三区激情视频| 欧美日韩国产亚洲一区| 国产麻豆综合| 欧美一区二区三区久久精品| 国产精品免费不| 国产aⅴ精品一区二区四区| 高清av不卡| 狠狠久久婷婷| 日韩中文字幕| 91成人精品在线| 美女精品久久| 免费污视频在线一区| 性欧美精品高清| 日韩av三区| 国产精品99在线观看| 99久久夜色精品国产亚洲1000部| 午夜一级在线看亚洲| 人人爱人人干婷婷丁香亚洲| 精品精品久久| 香蕉久久精品| 日韩一区二区三区精品视频第3页| 国产精品3区| 久久免费国产| 综合色一区二区| 精品一区二区三区视频在线播放| 麻豆精品av| 亚洲无线一线二线三线区别av| 免费日本视频一区| 国产精品宾馆| 亚洲精品88| 最新亚洲国产| 国产aⅴ精品一区二区三区久久| 免费视频一区三区| 欧美精品中文| 久久久精品久久久久久96 | 免费在线观看一区| 久久精品国内一区二区三区水蜜桃| 亚洲男女自偷自拍| 日韩精品欧美成人高清一区二区| 91亚洲国产高清| 午夜在线视频观看日韩17c| 久久国内精品| 免费av一区| 国产精品国码视频| 欧美~级网站不卡| 日韩不卡一区二区三区 | 亚洲色图国产| 亚洲精品福利电影| 亚洲毛片在线| 97精品国产福利一区二区三区| 精品欧美激情在线观看| 久久激情五月婷婷| 激情综合自拍| 国产精品香蕉| 欧美在线看片| 亚洲激情久久| 成人一二三区| 综合一区二区三区| 久久久成人网| 国产精品va视频| 天堂成人免费av电影一区| 国产白浆在线免费观看| 97精品资源在线观看| 五月天综合网站|