2010-03-02 131 views
6

我正在尋求從所有你可以告訴我有關網頁緩存的指導...我工作在PHP,所以如果任何人都可以解釋我如何執行緩存在PHP中。頁面緩存使用PHP

+0

請參閱http://stackoverflow.com/questions/2279316/beginner-data-caching-in-php – fire 2010-03-02 09:02:27

回答

7

PHP提供了一種非常簡單的解決方案,以輸出緩衝的形式進行動態緩存。如果在最後5分鐘內緩存了該網站的頭版(它產生的流量最多),現在從緩存副本提供。

<?php 

    $cachefile = "cache/".$reqfilename.".html"; 
    $cachetime = 5 * 60; // 5 minutes 

    // Serve from the cache if it is younger than $cachetime 
    if (file_exists($cachefile) && (time() - $cachetime 
    < filemtime($cachefile))) 
    { 
    include($cachefile); 
    echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))." 
    -->n"; 
    exit; 
    } 
    ob_start(); // start the output buffer 
?> 

.. Your usual PHP script and HTML here ... 

<?php 
    // open the cache file for writing 
    $fp = fopen($cachefile, 'w'); 

    // save the contents of output buffer to the file 
    fwrite($fp, ob_get_contents()); 

    // close the file 

    fclose($fp); 

    // Send the output to the browser 
    ob_end_flush(); 
?> 

這是一個簡單的緩存類型,

,你可以在這裏看到它

http://www.theukwebdesigncompany.com/articles/php-caching.php

您可以使用Smarty的具有高速緩存技術

http://www.nusphere.com/php/templates_smarty_caching.htm

1

我我感到驚訝的是,沒有一個f到目前爲止,響應似乎已經解決了在任何地方緩存的可能性。其他比運行PHP的服務器上的緩存更有效。

HTTP中有很多功能允許代理和瀏覽器重新使用之前提供的內容,而無需返回原點。太多以至於我甚至都不會在S.O.中嘗試回答這個問題。回覆。

看到這個tutorial爲好介紹的話題。

C.