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实现分页的一个示例
Oct 09 PHP
php checkdate、getdate等日期时间函数操作详解
Mar 11 PHP
php一个找二层目录的小东东
Aug 02 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
Apr 10 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
smarty自定义函数htmlcheckboxes用法实例
Jan 22 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
分享10段PHP常用代码
Nov 11 PHP
PHP编程之设置apache虚拟目录
Jul 08 PHP
php关联数组与索引数组及其显示方法
Mar 12 PHP
redis+php实现微博(三)微博列表功能详解
Sep 23 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
PHP中SimpleXML函数用法分析
2014/11/26 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
php-msf源码详解
2017/12/25 PHP
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
浅谈Vue.use到底是什么鬼
2020/01/21 Javascript
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
Python中字符串与编码示例代码
2019/05/20 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
2019/05/27 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
预备党员党课思想汇报
2014/01/13 职场文书
软件毕业生个人鉴定
2014/03/03 职场文书
yy司仪主持词
2014/03/22 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript