50. PHP 页面静态化(3)
2015-10-24 12:30
656 查看
如何触发系统生成纯静态页面 — 全部纯静态
1. 页面添加缓存时间
2. 手动触发方式
3. crontab 定时扫描程序
比如,如何触发index.php 生成纯静态页面?
1. 页面添加缓存时间
如,让用户访问index.php页面,先判断服务器是否有index.shtml文件, 并且让 index.shtml 生成的时间与当前时间做个对比, 如当前时间减去文件最后的修改时间。这个时间根据业务需求来定。 如果过期,则让动态页面生成新的静态页面;否则,则用已经生成的静态页面。
<?php // 1.链接数据库,然后从数据库里面获取数据 // 2.把获取到的数据填充到模板文件里面 // 3.需要把动态的页面转化为静态页面,生成纯静态化文件 if(is_file('./index.shtml') && (time()-filemtime('./index.shtml'))<300){ // 如果文件存在,且当前时间 - 文件最后修改时间<300s,则没有失效,直接加载静态文件即可 require_once('./index.shtml'); }else{ //引入数据库操作文件 require_once('./db.php'); $connect = Db::getInstance()->connect(); $sql = "select * from news where `category_id`=1 and `status`=1 order by desc limit 5"; $result = mysql_query($sql,$connect); $news = array(); while($row = mysql_fetch_array($result)) { $news[] = $rwo; } ob_start(); //引入模板 require_once('./templates/singwa.php'); //第一个参数是我们想要生成的静态文件index.shtml,第二个传我们缓冲区的内容 /*if(file_put_contents('index.shtml',ob_get_clean())){ echo 'Success'; }else{ echo 'Error'; }*/ //不用ob_get_clean(),因为它把缓冲区的内容情况了.ob_get_contents()把信息再终端生成, 并且在服务器缓存 file_put_contents('index.shtml',ob_get_contents()); }
2. 手动触发方式
即设置一个触发方式,触发后,不用判断,直接从数据库取数据,然后填充到模板,最后生成静态文件。
3. crontab 定时扫描程序
// 编辑 crontab crontab -e
*/1 * * * * php /data/static/index.php
相关文章推荐
- PHP设计模式四:适配器模式
- PHP7新特性整理介绍篇
- PHP 高级编程之多线程-消息队列
- PHP错误Warning:mysql_query()解决方法
- FTP协议过程分析
- php实现表单多按钮提交action的处理方法
- php中Password Hashing加密方法详解
- PHP之多进程
- php留言本
- 解析PHP缓存函数的使用说明
- PHP 性能分析(一): XHProf & XHGui 介绍
- 如何自建FTP站点
- PHP 中 9 大缓存技术总结
- 10个典型实用的PHP代码片段
- ThinkPhp3.2.3完全开发手册(在线版)
- 关于使用phpstudy搭建本地服务器,80端口被系统服务占用,不能关掉
- Mac下通过 brew 安装不同版本的php
- php实现表单多按钮提交action的处理方法
- PHP错误Warning:mysql_query()解决方法
- php实现CSV文件导入和导出