PHP定时自动生成静态HTML的实现代码


Posted in PHP onJune 20, 2010

但定时生成就受到了一些局限性,大家如果有独立服务器的能在服务器上设置计划任务,但如果是使用虚拟主机的可就不好办了.虽然方法非常多.但使用起来简便容易的,我觉得还是先判断已生成的首页文件的生成时间和现有时间之间的差值,如果满足某个值就开始生成这种方法比较来得容易.不多说了.开始吧!

网上找到的,记一下。实践证明,可用。

<?php 
$nowtime=time(); 
$pastsec = $nowtime ? $_GET["t"]; if($pastsec<60) 
{ 
exit; //1分钟更新一次,时间可以自己调整 
} 
ob_start(); //打开缓冲区 
include(”index.php”); 
$content = ob_get_contents(); //得到缓冲区的内容 
$content .= “n<script language=javascript src=”f5.php?t=”.$nowtime.”"></script>”; //加上调用更新程序的代码 
file_put_contents(”index.html”,$content); 
if (!function_exists(”file_put_contents”)) 
{ 
function file_put_contents($fn,$fs) 
{ 
$fp=fopen($fn,”w+”); 
fputs($fp,$fs); 
fclose($fp); 
} 
}

下面是一些解说:
在开始之前还是提一下三个函数吧:"ob_start()、ob_end_clean()、ob_get_contents()"
ob_start():是打开缓冲区的,就是要把你需要生成的静态文件的内容缓存在这里; 
ob_get_contents():是读出缓冲区里的内容,下面有代码为例; 
ob_end_clean():这个比较重要,只有使用了这个函数后,缓冲区里的内容才会读取出来;

[code]
if(file_exists("./index.htm"))//看静态index.htm文件是否存在
{
$time=time();

//文件修改时间和目前时间相差?的话,直接导向htm文件,否则重新生成htm
if($time-filemtime("./index.htm")< 600)
{
header("Location:classhtml/main.htm");

}
}

//在你的开始处加入ob_start();
ob_start();

//首页内容,就是你的动态部分了

//在结尾加入ob_end_clean(),并把本页输出到一个变量中
$temp=ob_get_contents();
ob_end_clean();

//写入文件
$fp=fopen("./index.htm",'w');
fwrite($fp,$temp) or die('写文件错误');
//echo"生成HTML完成!";
[html]

PHP 相关文章推荐
php 获取mysql数据库信息代码
Mar 12 PHP
php daodb插入、更新与删除数据
Mar 19 PHP
php下使用SimpleXML 处理XML 文件
Feb 27 PHP
php 获取一个月第一天与最后一天的代码
May 16 PHP
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
PHP中文乱码解决方案
Mar 05 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
PHP自定义错误用法示例
Sep 28 PHP
php使用curl代理实现抓取数据的方法
Feb 03 PHP
PHP中的浅复制与深复制的实例详解
Oct 26 PHP
关于php unset对json_encode的影响详解
Nov 14 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 #PHP
PHP操作xml代码
Jun 17 #PHP
PHP XML error parsing SOAP payload on line 1
Jun 17 #PHP
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 #PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 #PHP
PHP迅雷、快车、旋风下载专用链转换代码
Jun 15 #PHP
PHP中实现汉字转区位码应用源码实例解析
Jun 14 #PHP
You might like
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
PHP添加MySQL数据记录代码
2008/06/07 PHP
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
JavaScript delete操作符应用实例
2009/01/13 Javascript
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
详解Document.Cookie
2015/12/25 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
python运行时间的几种方法
2016/06/17 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
python路径的写法及目录的获取方式
2019/12/26 Python
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
学校运动会开幕演讲稿
2014/01/04 职场文书
网管求职信
2014/03/03 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
毕业实习证明范本
2015/06/16 职场文书