国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

幫助中心 >  技術(shù)知識庫 >  網(wǎng)站相關(guān) >  網(wǎng)站運營(yíng) >  無(wú)需插件wordpress生成靜態(tài)緩存文件的方法

無(wú)需插件wordpress生成靜態(tài)緩存文件的方法

2017-01-06 15:34:32 6515

無(wú)需插件wordpress生成靜態(tài)緩存文件的方法


說(shuō)起wordpress生成靜態(tài)緩存?話(huà)首先想到的就是WP Super Cache插件,確實(shí)如此,大多數的wordpress站長(cháng)們都在使用. 


但是永遠都有那些糾結完美派的人,不喜歡用插件的人也十分的多,而今天介紹的非插件搞定wordpress生成靜態(tài)緩存文件方法,即可為大家去掉這款強大的wordpress緩存插件WP Super Cache的使用! 


首先說(shuō)下,WP Super Cache的工作原理吧,該插件的Mod_rewrite加速模式加速效果非常好,因為這種模式是直接將網(wǎng)站的頁(yè)面生成靜態(tài)的html頁(yè)面,然后使用Mod_rewrite將請求轉發(fā)到靜態(tài)文件,這樣就跳過(guò)了php解析這一步直接將頁(yè)面吐出到瀏覽器,從而達到加速的效果。 


而今天介紹的教程,幾乎和上面的工作原理相同,再配合CDN等加速類(lèi)的使用的話(huà),效果將十分的明顯,提速100%??! 


操作教程 

PHP Code復制內容到剪貼板

  1. <?php   

  2. define('CACHE_ROOT', dirname(__FILE__).'/cache');   

  3. define('CACHE_LIFE', 86400);                   //緩存文件的生命期,單位秒,86400秒是一天  

  4. define('CACHE_SUFFIX','.html');             //緩存文件的擴展名,千萬(wàn)別用 .php .asp .jsp .pl 等等   

  5. $file_name  = md5($_SERVER['REQUEST_URI']).CACHE_SUFFIX;    //緩存文件名   

  6. //緩存目錄,根據md5的前兩位把緩存文件分散開(kāi)。避免文件過(guò)多。如果有必要,可以用第三四位為名,再加一層目錄。   

  7. //256個(gè)目錄每個(gè)目錄1000個(gè)文件的話(huà),就是25萬(wàn)個(gè)頁(yè)面。兩層目錄的話(huà)就是65536*1000=六千五百萬(wàn)。   

  8. //不要讓單個(gè)目錄多于1000,以免影響性能。   

  9. $cache_dir  = CACHE_ROOT.'/'.substr($file_name,0,2);   

  10. $cache_file = $cache_dir.'/'.$file_name;    //緩存文件存放路徑   

  11. if($_SERVER['REQUEST_METHOD']=='GET'){      //GET方式請求才緩存,POST之后一般都希望看到最新的結果   

  12.     if(file_exists($cache_file) && time() - filemtime($cache_file) < CACHE_LIFE){   //如果緩存文件存在,并且沒(méi)有過(guò)期,就把它讀出來(lái)。   

  13.         $fp = fopen($cache_file,'rb');   

  14.         fpassthru($fp);   

  15.         fclose($fp);   

  16.         exit();   

  17.     }   

  18.     elseif(!file_exists($cache_dir)){   

  19.         if(!file_exists(CACHE_ROOT)){   

  20.             mkdir(CACHE_ROOT,0777);   

  21.             chmod(CACHE_ROOT,0777);   

  22.         }   

  23.         mkdir($cache_dir,0777);   

  24.         chmod($cache_dir,0777);   

  25.     }   

  26.     function auto_cache($contents){         //回調函數,當程序結束時(shí)自動(dòng)調用此函數   

  27.         global $cache_file;   

  28.         $fp = fopen($cache_file,'wb');   

  29.         fwrite($fp,$contents);   

  30.         fclose($fp);   

  31.         chmod($cache_file,0777);   

  32.         clean_old_cache();                  //生成新緩存的同時(shí),自動(dòng)刪除所有的老緩存。以節約空間。   

  33.         return $contents;   

  34.     }   

  35.     function clean_old_cache(){   

  36.         chdir(CACHE_ROOT);   

  37.         foreach (glob("*/*".CACHE_SUFFIX) as $file){   

  38.            if(time()-filemtime($file)>CACHE_LIFE){   

  39.                unlink($file);   

  40.            }   

  41.         }   

  42.     }   

  43.     ob_start('auto_cache');                 //回調函數 auto_cache   

  44. }   

  45. else{   

  46.     if(file_exists($cache_file)){           //file_exists() 函數檢查文件或目錄是否存在。  

  47.         unlink($cache_file);                //不是GET的請求就刪除緩存文件。   

  48.     }   

  49. }   

  50. ?>  

代碼里都有注釋?zhuān)瑢⒋a保存為cache.php文件,然后將其放到網(wǎng)站的根目錄下,切記,是網(wǎng)站根目錄,非wordpress主題的根目錄!然后給網(wǎng)站根目錄創(chuàng )建個(gè)cache文件夾,給予777的寫(xiě)入權限

然后將代碼

代碼如下:


require('cache.php');


放到根目錄的index.php的<?php之后

這樣,就會(huì )自動(dòng)的在cache文件里生成靜態(tài)文件了。


提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->