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定时更新该静态文件,而不用每次访问时候还要判断是否更新。