PHP将整个网站生成HTML静态

我经常会在网上看到有人问怎么将整个动态的网站静态化,其实实现的方法很简单。

<?php
//在你的开始处加入 ob_start(); 
ob_start(); 

//以下是你的代码 
//在结尾加入 ob_end_clean(),并把本页输出到一个变量中 
$temp = ob_get_contents(); 
ob_end_clean(); 

//写入文件 
$fp = fopen(‘文件名’,'w’); 
fwrite($fp,$temp) or die(‘写文件错误’); 
?> 
 

这只是最基本的方法,还不是很实用,因为网站是要更新的,要定期重新生成HTML

下面是我用的方法:
 

if(file_exists("xxx.html"))
{
    $time = time();
         
         //文件修改时间和现在时间相差半小时一下的话,直接导向html文件,否则重新生成html
    if($time - filemtime("xxx.html") < 30*60)
    {
        header("Location:xxx.html");
    }
}
//在你的开始处加入 ob_start(); 
ob_start(); 

//页面的详细内容
//在结尾加入 ob_end_clean(),并把本页输出到一个变量中 
$temp = ob_get_contents(); 
ob_end_clean(); 

//写入文件 
$fp = fopen(‘xxx.html’,'w’); 
fwrite($fp,$temp) or die(‘写文件错误’); 

//重新导向
header("Location:xxx.html");

下面是一些用到的函数的介绍:
1、Flush:刷新缓冲区的内容,输出。
函数格式:flush()
说明:这个函数经常使用,效率很高。
2、ob_start :打开输出缓冲区
函数格式:void ob_start(void)
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。
3 、ob_get_contents :返回内部缓冲区的内容。
使用方法:string ob_get_contents(void)
说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。
4、ob_get_length:返回内部缓冲区的长度。
使用方法:int ob_get_length(void)
说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。
5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。
使用方法:void ob_end_flush(void)
说明:这个函数发送输出缓冲区的内容(如果有的话)。
6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区
使用方法:void ob_end_clean(void)
说明:这个函数不会输出内部缓冲区的内容而是把它删除!
7、ob_implicit_flush:打开或关闭绝对刷新
使用方法:void ob_implicit_flush ([int flag])
说明:使用过Perl的人都知道$=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()

时间: 2024-09-19 09:57:59

PHP将整个网站生成HTML静态的相关文章

在Fedora18安装下一代静态网站生成框架Awestruct

Awestruct是非常棒的静态网站生成框架,他基于Jekyll,使用Ruby语言开发.Awestruct可以根据模板生 成非常漂亮的网站,例如可以用BootStrap或者BluePrint,这两个大名鼎鼎的东东不用多说了吧,地球人都知 道.废话不多说,进入主题.安装Ruby环境 首先安装一些依赖库,否则安装Awestruct会报如下的错误 : Building native extensions. This could take a while... ......... ERROR: Erro

网站生成静态页面,及网站数据采集的攻、防原理和策略_小偷/采集

发布时间:2005年11月27日 晚 文章作者:翟振凯 (小琦) 交流方式: 个人站:http://www.xiaoqi.net     技术站:http://www.iisvs.net 商业站:http://www.iisvs.com QQ:53353866 22336848 关于本文:         本着互联网共享主义精神,特写此文献给建站新手,授人以鱼,不如授人以渔,本文所讲的只是方法和原理,希 望大家看完此文,能够从中得到些帮助和启发.         本文从一个ASP程序员的角度用大

asp.net的整套网站生成静态页面该怎么处理呢?

问题描述 asp.net的整套网站生成静态页面该怎么处理呢? 解决方案 解决方案二:遍历一下文件夹,将页面文件转化为静态页面

ASP生成html静态页面

原理:通过浏览器传送变量,如 http://127.0.0.1/shengcheng.asp?id=90 代码: if SaveFile("/new/"&id&".html","http://127.0.0.1/news.asp?id="&id&"") then 中 /new"&id&".html",是你生成的文件和路径.http://127.0.0

揭露88red生成htm静态页面企业建站系统漏洞第1/2页_漏洞研究

作者:小帥(xsser)@[0.S.T]  本文已发表在<黑客手册>第4期,转载请注明出处,或以超链接方式注明:http://blog.0kee.com/xiaoshuai 小帥's blog 很久没去asp300溜达了,不去总觉得的对不起这个发布站的流量,也对不起黑客手册那么多读者的强烈要求(别扔鸡蛋!扔钱!),那好,既然牛都吹起来了,我不得不冒着生命危险看看代码吧,反正我下载下来的时候就觉得很伟大,这个系统很伟大,他吹的比我还大,好好,我们看他怎么说的:88red生成htm静态页面企业建站

使用ASP.NET模板生成HTML静态页面的五种方案_实用技巧

ASP.NET模版生成HTML静态页面方案1: 复制代码 代码如下: /// < summary> /// 传入URL返回网页的html代码 /// < /summary> /// < param name="Url">URL< /param> /// < returns>< /returns> public static string getUrltoHtml(string Url) { errorMsg = &

根据模板文件生成一个静态html文件的类

一般我们用PHP输出一个html文件,总是用$head="<head>--</head>"这样一个长串来完成.本类主要提供一个简便的用PHP输出html文件的方法.避免了在程序中出现过多的带有长字串. 类定义文件 createhtml.class.php 如下: <?php //------------------- // TCreateHTML //根据模板文件生成一个静态html文件的类 // 作者:sharetop // email:ycshowto

PHP自动生成HTML静态页的例子

  做静态页面的时候增加这个功能非常不错,大家看下实现代码,在开始之前还是提一下三个函数吧:"ob_start().ob_end_clean().ob_get_contents()" ob_start():是打开缓冲区的,就是要把您需要生成的静态文件的内容缓存在这里; ob_get_contents():是读出缓冲区里的内容,下面有代码为例; ob_end_clean():这个比较重要,只有使用了这个函数后,缓冲区里的内容才会读取出来; if(file_exists("./i

网站不能为静态化的方便而用了JS代码来包含

最近接手一个医院网站的整站优化,优化的词语比较得多有性病.人工流产等.网站接手一看还不错新闻和几个频道页面都是静态的!心想...嘿嘿可以省了好多工序了.可是问题就在这个静态里面-. 网站全部是静态的!但是在前台查看源代码发现几乎没有什么文字除了HTML代码外.其余的全部都是JS代码.我的天啊..这个可是优化的大忌啊..网站是全部静态化了,可是这个静态化还不如没有静态化好.本来是网页重点内容就是为了让蜘蛛来抓取的,全部给打包到外头了.那网页在百度看来就是一座空城啊!没有办法拿人钱财,替人优化.我还