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入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
php批量上传的实现代码
Jun 09 PHP
php使用多个进程同时控制文件读写示例
Feb 28 PHP
PHP APC缓存配置、使用详解
Mar 06 PHP
PHP 7的一些引人注目的新特性简单介绍
Nov 08 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
Jan 07 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 PHP
PHP实现搜索时记住状态的方法示例
May 11 PHP
laravel 修改记住我功能的cookie保存时间的方法
Oct 14 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
Dec 12 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
adodb与adodb_lite之比较
2006/12/31 PHP
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
PHP Directory 函数的详解
2013/03/07 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
window下eclipse安装python插件教程
2017/04/24 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
PyTorch使用cpu加载模型运算方式
2020/01/13 Python
Python Django搭建网站流程图解
2020/06/13 Python
python3中布局背景颜色代码分析
2020/12/01 Python
用python对oracle进行简单性能测试
2020/12/05 Python
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
英语师范专业毕业生自荐信
2013/09/21 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
学校节水倡议书
2015/04/29 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
《工作是最好的修行》读后感3篇
2019/12/13 职场文书
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android