`

PHP将整个网站生成HTML静态

    博客分类:
  • PHP
阅读更多

用查找替换标签的方法是惯用的模板处理方法。通常用html文件做成一个模板,在需要替换变量的位置放置特别的标签,然后在PHP逻辑中用file_get_content把模板内容获取进来,在str_replace()的方法把变量的数据替换到指定的标签中,等输出浏览器的时候就可以合成一个完整的动态页面。用这种方法制作模板,PHP的变量数据不能直接传递给模板,需要通过查找替换标签的方法进行转换。所以遇到需要交换数据量多的时候会比较麻烦。

其实,除了这种方法外,还可以尝试用ob_get_contents()方法制作模板。用ob_get_contents()的好处就是可以直接传变量给模板,并且在模板中可以直接运行PHP程序;

 

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

<?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()

分享到:
评论

相关推荐

    动态生成静态HTML

    - ASP.NET MVC:可以使用Razor视图引擎,将C#代码嵌入HTML中,编译后生成HTML输出。 - ASP.NET Core Razor Pages:专门为构建单一页面应用而设计,同样使用Razor语法,简化了页面逻辑。 - HTML Agility Pack:一...

    php生成静态文件 php生成html文件

    总结来说,PHP生成静态HTML文件是通过输出缓冲区技术实现的,它能够帮助我们将动态生成的内容批量写入文件,提升网站性能,优化SEO,并降低服务器压力。通过结合其他PHP函数和工具,我们可以构建更复杂、高效的静态...

    php静态 页面生成

    它将动态生成的内容转换为HTML文件,这样当用户再次访问相同页面时,服务器可以直接发送预先生成的静态HTML,而无需执行PHP脚本。这降低了服务器处理请求的负担,加快了页面加载速度,尤其对于高流量的网站,这种...

    PHP生成静态HTML的技术原理

    PHP生成静态HTML的技术原理主要涉及网站优化、性能提升和服务器负载均衡等方面,是现代Web开发中的常见实践。静态HTML页面相比于动态PHP页面,具有更快的加载速度和更低的服务器资源消耗,尤其对于高访问量的网站,...

    把php生成静态(html)页面程序类

    把php生成静态(html)页面程序类 private $template; //模版 private $file_name; //文件名 private $array; //数据数组 function __construct($file_name, $template, $array) { //构造类 $this-&gt;...

    php 生成静态文件

    标题中的"php 生成静态文件"指的是使用PHP编写一个类或者脚本来动态生成HTML等静态文件,以便后续的用户请求可以直接读取这些预先生成的文件,而无需每次都执行PHP代码。 描述中提到的这个类主要用于生成静态缓存...

    PHP静态文件生成类库.zip

    PHP静态文件生成类 使用方法如下: &lt;?php  $s=new CreateHtml();  $s-&gt;start();  ?&gt;  &lt;html&gt;  &lt;body&gt;  asdfasdfasdfasdfasdfasdfasdfasdfasdf   adfasdfasdf   ...

    把php生成静态(html)页面程序类.zip

    标题提到的“把php生成静态(html)页面程序类.zip”是一个压缩包,其中包含了一个PHP类,用于将动态生成的PHP页面转换为HTML静态文件。这一过程通常被称为静态化。 首先,我们来看PHP动态页面和静态HTML页面的区别。...

    PHP生成静态页 整站源码 适合新手

    当我们谈论"PHP生成静态页"时,我们指的是通过PHP脚本动态生成HTML页面,然后将其保存为静态文件,以便后续的用户请求可以直接访问这些预先生成的页面,而无需每次请求都执行PHP代码。这种方法可以提高网站的加载...

    php生成静态

    "PHP生成静态"是指利用PHP脚本来动态生成HTML页面,然后保存为静态文件,以提高网站的访问速度和减轻服务器负载。这种方法被称为静态化,是优化网站性能的一种常见策略。 静态网页通常由纯HTML构成,它们不依赖...

    php生成静态页面源码

    当我们谈论"PHP生成静态页面源码"时,我们是指通过PHP脚本将动态内容转化为HTML文件,这些HTML文件可以独立存在于服务器上,不依赖数据库或PHP解释器来展示内容。这种方式有助于提高网站的加载速度,减轻服务器负担...

    php+mvc生成为静态代码跟数据库

    PHP生成静态代码的过程: 1. URL路由:在PHP MVC框架中,通常有URL路由机制,将用户请求映射到相应的控制器方法。在静态化过程中,我们需要记录这些路由,并生成对应的静态HTML文件。 2. 请求处理:当用户请求到达...

    PHP静态文件生成类库

    1. **页面渲染**:负责将PHP模板与数据结合,生成HTML内容。 2. **缓存管理**:提供缓存机制,当内容未更新时,直接返回缓存的静态文件,避免重复生成。 3. **URL映射**:处理动态URL到静态文件路径的转换,确保正确...

    某机械设备企业后台可生成html静态网站企业源码

    该源码是针对某机械设备企业的后台系统,设计用于生成HTML静态网站。这样的系统在现代企业网站构建中扮演着重要角色,因为它能提高网站的加载速度,优化搜索引擎排名,并减轻服务器负担。下面将详细阐述相关知识点。...

    最简单的php生成静态页的类

    在动态网站中,每次有用户访问时,服务器都会运行PHP脚本来生成HTML页面并发送给浏览器。而在静态页面生成技术中,PHP脚本会在用户请求之前或后台自动运行,将动态内容转化为HTML文件存储在服务器上。当用户访问时,...

    php批量生成静态页html

    用php语言批量生成静态页,可解决seo的问题,在商城,内容管理系统等地方都有很大的适用性。

    php生成静态化实例

    "PHP生成静态化实例"这一主题涉及到的是通过PHP动态生成HTML页面并将其存储为静态文件的技术。这一过程通常被称为静态化或者静态网页生成,对于提高网站性能、减轻服务器压力以及优化搜索引擎排名等方面都有显著的...

    生成静态的htmlphp

    2. 批量处理:支持对整个网站或指定部分进行批量静态化。 3. 清理机制:生成的静态文件可能会过期,系统应有定期清理旧文件的机制。 4. 动静结合:对于需要实时更新的部分,如评论区,可以保持动态处理。 5. SEO优化...

    生成生成静态文件文件

    在IT行业中,生成静态文件是一项常见的任务,尤其在构建高性能、高可伸缩性的网站时。静态文件包括HTML、CSS、JavaScript等不依赖服务器动态处理的文件,它们可以直接由Web服务器提供给用户,减少服务器计算资源的...

Global site tag (gtag.js) - Google Analytics