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
Dec 23 PHP
php中转义mysql语句的实现代码
Jun 24 PHP
for循环连续求和、九九乘法表代码
Feb 20 PHP
PHP的基本常识小结
Jul 05 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
php里array_work用法实例分析
Jul 13 PHP
学习php设计模式 php实现策略模式(strategy)
Dec 07 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 PHP
PHP的AES加密算法完整实例
Jul 20 PHP
laravel实现按月或天或小时统计mysql数据的方法
Oct 09 PHP
解决PhpStorm64不能启动的问题
Jun 20 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中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
Python Socket使用实例
2017/12/18 Python
Python实现的质因式分解算法示例
2018/05/03 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
计算机软件个人的自荐信范文
2013/12/01 职场文书
党校培训自我鉴定范文
2014/03/20 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript