手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP定时自动生成静态HTML的实现代码
PHP定时自动生成静态HTML的实现代码
摘要:但定时生成就受到了一些局限性,大家如果有独立服务器的能在服务器上设置计划任务,但如果是使用虚拟主机的可就不好办了.虽然方法非常多.但使用起来...

但定时生成就受到了一些局限性,大家如果有独立服务器的能在服务器上设置计划任务,但如果是使用虚拟主机的可就不好办了.虽然方法非常多.但使用起来简便容易的,我觉得还是先判断已生成的首页文件的生成时间和现有时间之间的差值,如果满足某个值就开始生成这种方法比较来得容易.不多说了.开始吧!

网上找到的,记一下。实践证明,可用。

复制代码 代码如下:

<?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定时自动生成静态HTML的实现代码】相关文章:

php编写批量生成不重复的卡号密码代码

如何在HTML中嵌入PHP 代码

用PHP实现WEB动态网页静态

生成静态页面的PHP类

PHP入门速成(2)

php生成zip文件类实例

我的论坛源代码(六)

我的论坛源代码(八)

建立动态的WML站点(二)

用PHP制作静态网站的模板框架(四)

精品推荐
分类导航