PHP文件缓存技术之页面静态化

来源:互联网 发布:c语言预处理程序停止 编辑:程序博客网 时间:2024/05/16 07:38

很多大型网站,进去的时候看它很复杂的页面,但是加载也没有耗费多长时间,除了其它必要原因以外,我认为静态化也是其中必需考虑的技术之一。她先于用户获取资源或数据库数据进而通过静态化处理,生成静态页面,所有人都访问这一个静态页面,而静态化处理的页面本身的访问速度要较动态页面快很多倍,因此程序性能会有大大的提升。


静态化在页面上的体现为:访问速度加快,用户体验性明显提升;在后台体现为:访问脱离数据库,减轻了数据库访问压力。


PHP实现页面静态化的原理:如果静态文件不存在或者当前时间减去文件的最后修改时间大于缓存时间,数据从数据库中读取,然后在将数据生成静态文件,否则直接读取静态文件中的内容。


详细代码如下:


<?php$cacheTime = 600;$cacheDir = './html';if (is_dir($cacheDir)) mkdir($cacheDir);$cacheFile = $cacheDir.'/'.(int)$_GET['id'].'.html';if (!is_file($cacheFile) || time() - filemtime($cacheFile) > $cacheTime) {$conn = mysql_connect('localhost', 'root', 'root');mysql_select_db('yunps', $conn);mysql_query('SET NAMES gb2312');$sql = 'SELECT * FROM yu_article WHERE id = '.(int)$_GET['id'];$resourse = mysql_query($sql);$result = mysql_fetch_assoc($resourse);//这里只是简要生成输出,复杂点的可以将 ob 函数和 include 结合使用 $content = '<html><head><title>'.$result['title'].'</title></head><body>'.$result['content'].'</body></html>';file_put_contents($cacheFile, $content, LOCK_EX);} else {$content = file_get_contents($cacheFile);}echo $content;?>


注意:如果想实时输出点击数之类可以参考http://www.yuphp.com/Article/index/id/36.html,如果想将连接地址也替换成静态的话就需要用到伪静态以及正则替换 URL 地址

原创粉丝点击