如何在PHP中将动态页面缓存到平面文件?

时间:2009-12-01 19:11:57

标签: php

我正在尝试使用缓存系统来减少数据库的负载。

我希望能够比较平面文件更新的上次更新时间的时间戳 确保不久前该文件最后一次更新。

这是代码:     

$cache_file = $_GET[ 'page_id' ] . '.html';

function cache() {

    // Here i want to get the timestamp of the file that was previously cached, 
    // if it exists.
    // If the file doesn't exist, create it.
    // If it does exist, check last modified time, if it's too long ago, then overwrite
    // the file.


    $ob = ob_get_contents();

    file_put_contents( $cache_file, $ob );

}

function loadFromCache( $page_id ) {
    $file_name = $page_id . '.html';
    if( ! file_exists( $file_name  ) ) {
         return false;
    }
    readfile( $file_name );
    return true;
}

谢谢。

3 个答案:

答案 0 :(得分:2)

您可以使用filemtime()来获取文件的修改时间。

答案 1 :(得分:-2)

如果您想获取当前文件最后修改的时间戳,可以使用以下代码:

<?php
    $stat = (stat(__FILE__));
    echo 'Document last updated: ', date('M d Y', $stat['mtime']);
?>

答案 2 :(得分:-2)

为什么不使用其中一个php缓存选项out there? PHP加速器或PHP:APC?这些为您提供了一个现成的解决方案。