一。用时间来判断
二。用smarty模版中的缓存技术

解决方案 »

  1.   

    把时间放在文件头1行,
    用php截取文件头一行判断时间,如果时间过了,执行php
    没过时间,直接输出html
      

  2.   

    用php截取文件头一行
    怎么写
      

  3.   

    <?php
    $handle = @fopen("/var/www/html/show.html", "r");
    if ($handle) {
        $buffer = fgets($handle, 4096);
        echo $buffer;
        fclose($handle);
    }
    ?>
      

  4.   

    $handle是文件指针,4096是说往buffer里读4096字节,没够就有多少读多少,
    基础的文件操作.
      

  5.   

    楼主要的其实是一种缓存技术.
    有朋友说用smarty的缓存来实现。
    但是这有一个毛病,就是象数据库查询什么的.是一直在做的.并不能有效降低服务器开销我的建议:
    1、把每一个查询结果都写成一个静态文件或php文件,若为PHP文件则在文件中记录下写文件的时间,如果不是则另外开一个PHP文件记录某个文件写HTML的时间。
    2、超过设定的缓存时间,就执行一次写操作,如果没超过就读取php或html代码直接输出。但是这样可能会出现一个别的问题,就是一旦这个缓存时间结束而你的SQL语句又不只执行一次,就会出现一个查询高峰。解决的办法就是动态缓存。当然,针对楼主的问题,也许用生成html的办法然后用file_get_contents 读取就能实现了,不过效果可能不够理想。file-get-contents太消耗资源。。不如用php文件记录查询结果的效果好。
    动态缓存的示例:www.days6.com
    欢迎大家一起探讨。