PHP定时自动生成静态HTML的实现代码

 更新时间:2010年06月20日 23:40:02   作者:  
为了提高网站的访问速度,我们往往采用生成静态的方式来实现,这样确实把网站的访问速度提高了非常多.
但定时生成就受到了一些局限性,大家如果有独立服务器的能在服务器上设置计划任务,但如果是使用虚拟主机的可就不好办了.虽然方法非常多.但使用起来简便容易的,我觉得还是先判断已生成的首页文件的生成时间和现有时间之间的差值,如果满足某个值就开始生成这种方法比较来得容易.不多说了.开始吧!

网上找到的,记一下。实践证明,可用。
复制代码 代码如下:

<?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的4种常见运行方式

    php的4种常见运行方式

    这篇文章主要介绍了php的4种常见运行方式,本文讲解了CGI、FastCGI、APACHE2HANDLER、CLI等4种运行方式,需要的朋友可以参考下
    2015-03-03
  • PHP使用glob函数遍历目录或文件夹的方法

    PHP使用glob函数遍历目录或文件夹的方法

    这篇文章主要介绍了PHP使用glob函数遍历目录或文件夹的方法,对比分析了使用glob函数遍历目录的优点,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • 详解如何利用PHP实现RPC

    详解如何利用PHP实现RPC

    RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程通信和相互调用。本文将利用PHP实现RPC,需要的可以参考一下
    2022-04-04
  • PHP中的闭包(匿名函数)浅析

    PHP中的闭包(匿名函数)浅析

    这篇文章主要介绍了PHP中的闭包(匿名函数)浅析,本文给出了一个使用实例和执行效率测试,需要的朋友可以参考下
    2015-02-02
  • php中namespace及use用法分析

    php中namespace及use用法分析

    这篇文章主要介绍了php中namespace及use用法,结合实例形式分析了php中namespace及use的功能与具体使用方法,需要的朋友可以参考下
    2016-12-12
  • php链路追踪框架skywalking介绍

    php链路追踪框架skywalking介绍

    SkyWalking是一个开源的可观测平台,用于从服务和云原生基础设施收集,分析, 聚合及可视化数据。SkyWalking 提供了一种简便的方式来清晰地观测分布式系统,甚至横跨多个云平台
    2022-08-08
  • 深入理解curl类,可用于模拟get,post和curl下载

    深入理解curl类,可用于模拟get,post和curl下载

    本篇文章是对curl类,可用于模拟get,post和curl下载进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php 字符转义 注意事项

    php 字符转义 注意事项

    今天碰到一个处理文件特殊字符的事情,再次注意到这个问题
    2009-05-05
  • PHP面向对象之旅:深入理解static变量与方法

    PHP面向对象之旅:深入理解static变量与方法

    这篇文章主要介绍了static变量与方法,有需要的朋友可以参考一下
    2014-01-01
  • linux下为php添加curl扩展的方法

    linux下为php添加curl扩展的方法

    一般php源码的扩展库里已经带了curl的扩展,所以没有必要下载,直接将编译扩展即可
    2011-07-07

最新评论