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写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
使用php清除bom示例
Mar 03 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
Sep 27 PHP
php三元运算符知识汇总
Jul 02 PHP
关于PHP中Session文件过多的问题及session文件保存位置
Mar 17 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
PHP二维数组去重实例分析
Nov 18 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
PHP实现非阻塞模式的方法分析
Jul 26 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
微信小程序结合ThinkPHP5授权登陆后获取手机号
Nov 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语法(2)
2006/10/09 PHP
smarty中常用方法实例总结
2015/08/07 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
python调用fortran模块
2016/04/08 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
Python补齐字符串长度的实例
2018/11/15 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
Django 请求Request的具体使用方法
2019/11/11 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
两则小学生的自我评价分享
2013/11/14 职场文书
简历的自我评价范文
2014/02/04 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
事业单位财务人员岗位职责
2015/04/14 职场文书
护理工作心得体会
2016/01/22 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
java版 简单三子棋游戏
2022/05/04 Java/Android