中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

php頁面緩存方法小結
來源:易賢網 閱讀:1039 次 日期:2015-01-15 14:12:32
溫馨提示:易賢網小編為您整理了“php頁面緩存方法小結”,方便廣大網友查閱!

在php頁面緩存主要用到的是ob系列函數,如ob_start(),ob_end_flush(),ob_get_contents(),但是更高級的緩存是不使用這些函數的,本文最后會舉一個實例加以說明.

先來看看緩存常用的ob系列函數:

ob_start():頁面緩存開始的標志,此函數一下的內容直至ob_end_flush()或者ob_end_clean()都保存在頁面緩存中;

ob_get_contents():用來獲取頁面緩存中的內容,獲取到以后呢,我們就可以想怎么處理這些內容都行了,過濾字段啦,匹配內容啦,都可以~~~

ob_end_flush():表示頁面緩存結束,并且經我驗證,緩存的內容將輸出到當前頁面上,也就是可以顯示緩存內容.

用此三個php函數,就可以實現強大的功能,如果數據庫查詢量較大,可以用cache來解決這個問題.

下面是編碼部分.

1.初始化函數,一般是設置頁面緩存路徑、緩存文件命名格式等,可按個人喜好自定義,這里用到的識別ID是經加密的$_SERVER[REQUEST_URI]參數,這個函數中最后還有一個if判斷,若未過緩存期,則加載緩存文件,否則加載源文件,代碼如下:

代碼如下:

function page_init()

{

$url = $_SERVER['REQUEST_URI'];//子url,該參數一般是唯一的

$pageid = md5($url);

$dir = str_replace('/','_',substr($_SERVER['SCRIPT_NAME'],1,-4));

//目錄命名方式,如exp_index

if(!file_exists($pd = PAGE_PATH.$dir.'/'))@mkdir($pd,0777) or die("$pd目錄創建失敗");

//如cache/page/exp_index/

define('PAGE_FILE',$pd.$pageid.'.html');

//如cache/page/exp_index/cc8ef22b405566745ed21305dd248f0e.html

$contents = file_get_contents(PAGE_FILE);//讀出

if($contents && substr($contents, 13, 10) > time() )//對應page_cache()函數中加上的自定義頭部

{

echo substr($contents, 27);

exit(0);

}

return true;

}

2.頁面緩存函數,這里使用到一個技巧,在緩存文件的內容中加上一個頭部信息--過期時間,所以每次只需要對頭部中的過期時間和當前時間進行比較,在page_init()函數中進行,就能判斷緩存是否過期了,代碼如下:

復制代碼 代碼如下:

function page_cache($ttl = 0)

{

$ttl = $ttl ? $ttl : PAGE_TTL;//緩存時間,默認3600s

$contents = ob_get_contents();//從緩存中獲取內容

$contents = "<!--page_ttl:".(time() + $ttl)."-->n".$contents;

//加上自定義頭部:過期時間=生成時間+緩存時間

file_put_contents(PAGE_FILE, $contents);//寫入緩存文件中

ob_end_flush();//釋放緩存

}

3.函數使用,注意這兩個函數有先后執行順序,還有別忘了ob_start(),代碼如下:

代碼如下:

<?php

page_init();//頁面緩存初始化

ob_start();//開啟緩存

...//代碼段

page_cache(60);//一般是最后一行

?>

例2,下面做個示例來說明PHP頁面緩存技術,代碼如下:

代碼如下:

<?php

$_time =10;

$dir="D:\php\";

function cache_start($_time, $dir)

{

$cachefile = $dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html';

$cachetime = $_time;

ob_start();

if(file_exists($cachefile) && (time()-filemtime($cachefile) < $cachetime))

{

include($cachefile);

ob_end_flush();

exit;

}

}

function cache_end($dir)

{

$cachefile = $dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html';

$fp = fopen($cachefile, 'w');

fwrite($fp, ob_get_contents());

fclose($fp);

ob_end_flush();

}

cache_start($_time, $dir);

//以下是輸出的內容,放在cache_start和cache_end兩個方法之間

for ($i=0;$i<5;$i++)

{

echo $i;

sleep(1);

}

cache_end($dir);

?>

例,利用生成文件做緩存,代碼如下:

代碼如下:

<?php

ob_start();

/**

* @author 何名慧

* @copyright 2009-3-13

* @param string $cache_folder 緩文件夾

* @param int $cache_create_time 文件緩存時間

* @example $cache=new Esj_Cache('./_cache',100)

* @example $cache->read_cache() 讀取緩存并輸出

* @example $cache->creatre_cache() 創建緩存文件(放在文件未尾)

* @example $cache->list_file() 返回所有緩存文件列表

* @example $cache->del_file() 刪除所有緩存文件

*/

class Esj_Cache{

private $cache_folder=null;//cacher文件夾

private $wroot_dir=null;//站點目錄

private $cacher_create_time=null;//cacher文件的建立時間

public function __construct($cache_foldername,$cacher_time=100)

{

ob_start();

$this->wroot_dir=$_SERVER['DOCUMENT_ROOT'];

$this->cache_folder=$cache_foldername;

$this->cacher_create_time=$cacher_time;

}

public function read_cache()

{

try {

if(self::create_folder($this->cache_folder))

{

self::get_cache();//輸出緩存文件信息

}else

{

echo "緩存文件夾創建失敗!";

return false;

}

}catch(Exception $e){

echo $e;

return false;

}

}

//測試緩存文件夾是否存在

private function exist_folder($foler)

{

if(file_exists($this->wroot_dir."/".$foler)){

return true;

}else {

return false;

}

}

//建立一個新的文件夾

private function create_folder($foler)

{

if(!self::exist_folder($foler))

{

try{

mkdir($this->wroot_dir."/".$foler,0777);

chmod($this->wroot_dir."/".$foler,0777);

return true;

}catch (Exception $e)

{

self::get_cache();//輸出緩存

return false;

}

return false;

}

else

{

return true;

}

}

//讀取緩存文件

private function get_cache()

{

$file_name=self::get_filename();

if (file_exists($file_name)&&((filemtime($file_name)+$this->cacher_create_time) > time()))

{

$content=file_get_contents($file_name);

if($content)

{

echo $content;

ob_end_flush();

exit;

}else

{

echo "文件讀取失敗";

exit;

}

}

}

//返回文件的名字

private function get_filename()

{

$filename=$file_name=$this->wroot_dir.'/'.$this->cache_folder.'/'.md5($_SERVER['QUERY_STRING']).".html";

return $filename;

}

//建立緩存文件

public function create_cache()

{

$filename=self::get_filename();

if($filename!="")

{

try{

file_put_contents($filename,ob_get_contents());

return true;

}catch (Exception $e)

{

echo "寫緩存失敗:".$e;

exit();

}

return true;

}

}

// 取得緩存中的所有文件

public function list_file()

{

$path=$this->cache_folder;

if ($handle = opendir($path)) {

while (false !== ($file = readdir($handle))) {

if($file!="." && $file!="..") {

$path1=$path."/".$file;

if(file_exists($path1))

{

$result[]=$file;

}

}

}

closedir($handle);

}

return $result;

}

//刪除緩存中的所有文件

public function del_file()

{

$path=$this->cache_folder;

if ($handle = opendir($path)) {

while (false !== ($file = readdir($handle))) {

if($file!="." && $file!="..") {

$path1=$path."/".$file;

if(file_exists($path1))

{

unlink($path1);

}

}

}

closedir($handle);

}

return true;

}

}

?>

更多信息請查看IT技術專欄

更多信息請查看網絡編程
易賢網手機網站地址:php頁面緩存方法小結
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美激情在线播放| 国产亚洲欧美日韩日本| 欧美日韩中文精品| 有坂深雪在线一区| 午夜在线一区二区| 国产精品你懂的| 国产欧美一区二区三区在线看蜜臀 | 欧美日韩国产大片| 亚洲神马久久| 国内精品视频在线观看| 国产精品扒开腿做爽爽爽视频| 亚洲自拍偷拍福利| 亚洲国产成人午夜在线一区| 免费在线视频一区| 欧美精品少妇一区二区三区| 国产精品美女久久久| 欧美精品一区二区在线播放| 国产免费亚洲高清| 国产精品久久久久久久7电影| 国产精品麻豆欧美日韩ww| 亚洲看片网站| 欧美日韩亚洲国产精品| 亚洲精品一区久久久久久| 欧美h视频在线| 亚洲国产日韩欧美在线99 | 欧美国产成人精品| 亚洲大胆视频| 欧美区亚洲区| 一区二区三区四区五区在线| 欧美日韩三区四区| 亚洲欧美日韩视频一区| 亚洲精品一区二区三区四区高清| 久久久噜噜噜| 亚洲美女视频网| 国产伦精品一区二区三区免费 | 欧美一区影院| 亚洲国产精品尤物yw在线观看| 久久天天综合| 最近看过的日韩成人| 欧美日韩一本到| 性高湖久久久久久久久| 亚洲二区三区四区| 国产精品私房写真福利视频| 久久久久88色偷偷免费| 亚洲美女中文字幕| 国产日韩精品视频一区二区三区 | 欧美另类videos死尸| 亚洲一区国产视频| 亚洲激情在线视频| 国产日韩欧美高清| 欧美日韩国产综合新一区| 欧美一区二区黄| 亚洲五月婷婷| 亚洲理伦电影| 亚洲高清影视| 极品少妇一区二区三区精品视频| 国产精品xnxxcom| 久久婷婷久久一区二区三区| 亚洲一区二区久久| 一本色道久久88精品综合| 黑人中文字幕一区二区三区| 欧美视频二区| 欧美另类在线播放| 欧美成人久久| 裸体丰满少妇做受久久99精品| 亚洲女同精品视频| 亚洲欧美日韩国产成人精品影院| 亚洲毛片在线观看| 亚洲精品少妇30p| 亚洲精品一区在线观看| 日韩视频在线观看免费| 91久久夜色精品国产九色| 亚洲激情视频网| 在线视频欧美日韩精品| 亚洲欧美日本国产专区一区| 性欧美8khd高清极品| 久久aⅴ国产紧身牛仔裤| 免费在线观看精品| 欧美日韩喷水| 国产一区深夜福利| 亚洲国产成人tv| 亚洲一区欧美| 免费成人av在线| 欧美丝袜一区二区| 狠狠色狠狠色综合日日小说| 最近中文字幕日韩精品| 香蕉视频成人在线观看| 蜜臀av一级做a爰片久久| 欧美亚洲第一页| 精品不卡一区| 久久中文在线| 欧美一区网站| 国产日韩欧美综合| 国产精品羞羞答答| 亚洲国产精品va| 老**午夜毛片一区二区三区| 欧美日韩一区三区| 亚洲精品少妇| 麻豆成人在线观看| 国产视频欧美视频| 久久精品国产欧美激情| 国产精品主播| 亚洲最黄网站| 亚洲高清资源综合久久精品| 亚洲精品一区久久久久久| 午夜精品成人在线| 欧美日本精品| 好吊色欧美一区二区三区视频| 在线观看欧美精品| 久久精品一区中文字幕| 国产精品视频一| 99国产精品久久久久久久| 久久久亚洲精品一区二区三区| 欧美日韩在线一区| 亚洲网址在线| 欧美激情一区二区久久久| 国产亚洲精品v| 亚洲女同精品视频| 欧美日韩一区在线播放| 国产一区二区三区久久悠悠色av| 久久久久女教师免费一区| 国产精品一区二区三区乱码| 日韩视频在线免费| 欧美aaa级| 亚洲免费不卡| 激情欧美一区二区三区| 亚洲欧洲日产国产网站| 巨乳诱惑日韩免费av| 在线观看日韩国产| 免费在线日韩av| 亚洲欧美日本国产专区一区| 国产精品日韩精品欧美在线| 亚洲视频在线观看| 国产精品入口尤物| 久久精品免费播放| 亚洲美女av网站| 国产精品一级二级三级| 欧美一级成年大片在线观看| 狠狠色丁香久久婷婷综合丁香 | 亚洲国产一区二区精品专区| 欧美国产日韩免费| 日韩视频精品在线| 欧美日韩综合一区| 欧美在线影院在线视频| 亚洲免费高清| 亚洲日本成人| 亚洲电影av| 国产午夜精品一区理论片飘花| 欧美丝袜一区二区| 国产欧美视频一区二区三区| 国产精品久久久久久妇女6080| 欧美日韩1234| 性色av香蕉一区二区| 亚洲欧洲日本一区二区三区| 国产欧美日韩亚洲一区二区三区| 欧美91视频| 久久久噜噜噜久久久| 欧美一区免费| 性感少妇一区| 亚洲视频一二区| 日韩写真在线| 99视频精品免费观看| 亚洲激情网址| 影院欧美亚洲| 国内精品久久久久影院优| 国产欧美日韩亚洲| 欧美高潮视频| 欧美性一区二区| 欧美日韩精品免费看| 欧美日韩国产在线| 欧美激情精品久久久| 欧美日韩成人一区| 亚洲欧美成人| 久久久xxx| 欧美成人免费在线视频| 一区二区三区在线看| 国产精品午夜在线| 国产精品欧美日韩一区| 亚洲国产一区二区三区在线播| 日韩午夜电影av| 欧美一级专区免费大片| 久久99伊人| 国产精品老牛| 亚洲二区三区四区| 亚洲一区日韩在线| 欧美激情亚洲视频| 国产精品久久久久久久久久直播| 亚洲精品精选| 国产精品高潮在线| 欧美综合国产| 伊人成人在线视频| 亚洲一区二区三区精品在线观看| 欧美日韩在线一二三| 午夜精品视频一区| 最新亚洲视频| 亚洲成色777777女色窝| 国产精品劲爆视频| 欧美国产日本韩| 亚洲欧美日韩成人高清在线一区| 亚洲精品一区二区三区不|