php生成静态html文件

php生成静态html文件,主要用在某些并不需要实时更新,且访问量大的页面,比如说门户的首页。顾名思义,就是当首次访问时候,php生成一个静态html页面,同时该页面有一个“有效时间”,在有效时间内所有的访问都直接返回该html页面,而不需要每次访问都重新生成页面。当过了有效时间后,重新生成一次静态html页面即可。从而节省系统开销。

(当然,这个静态html文件内部还可以通过ajax实时更新数据。)
如下所示:

用户访问output.php页面,后台首先查看是否存在有效的output.html,

若存在,直接返回该html文件;

若不存在,php重新处理数据输出给用户,同时生成一个新的html文件留待之后的访问。

        if (is_file('output.html') && (time() - filemtime('output.html')) < 300) {
            // 如果静态页面存在且仍在有效时间内(这里设为5分钟),直接输出该静态文件
            require_once('output.html');
        } else {
            /**
             * ... 处理数据
             * ... 加载模版
             */
            ob_start();         // 开启php缓存
            echo $output;       // 将生成的数据输出到php缓存(php结束后将缓存发送给浏览器)
            file_put_contents('output.html', ob_get_contents());    // 将生成的缓存数据输出到一个静态文件
        }

 

 ps:当然,你也可以做一个crontab定时更新该静态文件,而不用每次访问时候还要判断是否更新。

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top