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初学者头疼十四条问题大总结
Nov 12 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
Apr 12 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
Dec 29 PHP
php数组(array)输出的三种形式详解
Jun 05 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
PHP大神的十大优良习惯
Sep 14 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
php workerman定时任务的实现代码
Dec 23 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 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中检查isset()和!empty()函数的必要性
2019/02/13 PHP
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
理解Javascript闭包
2013/11/01 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
jQuery中even选择器的定义和用法
2014/12/23 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
vue实现压缩图片预览并上传功能(promise封装)
2019/01/10 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
python3新特性函数注释Function Annotations用法分析
2016/07/28 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
python 命令行传入参数实现解析
2019/08/30 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
python中怎么表示空值
2020/06/19 Python
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
四好少年事迹材料
2014/01/12 职场文书
幼儿园教师自我鉴定
2014/03/20 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
社区活动总结报告
2014/05/05 职场文书
小学母亲节活动总结
2015/02/10 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
学前教育见习总结
2015/06/23 职场文书
2019教师的学习计划
2019/06/25 职场文书
一文搞懂Redis中String数据类型
2022/04/03 Redis
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL
使用CSS实现音波加载效果
2023/05/07 HTML / CSS