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”); |
上面用的缓存文件在大量生成时会出现负载过重,下面我们介绍一种更为高效的方法
以下是输入内容的提交页面:
文件名:aa.html
代码如下 | 复制代码 |
<html> <form method="post" action="bb.php"> |
以下是代码片段:
文件名:bb.php
代码如下 | 复制代码 |
<?php //定义时间函数(文件名) //判断提交值是否为空 //判断今天的文件夹是否存在 //写成html文件 |
如果提示文件写入成功,那你就成功了,然后回到你的相应目录里看看有没有生成静态的html文件!
smarty模板生成方法
代码如下 | 复制代码 |
<?php |
smarty中有一个获取模板页内容方法fetch(), 它的声明原形是这样的:
代码如下 | 复制代码 |
<?php |
第一个参数为模板名称, 第二个参数为缓存的id, 第三个参数为编译id, 第四个参数为是否显示模板内容. 生成静态页我们就需要用到这个方法.
代码如下 | 复制代码 |
<?php $smarty = new Smarty(); //其它模板替换语法... //下面这句取得页面中所有内容, 注意最后一个参数为false $content = $smarty->fetch('模板名称.tpl', null, null, false); //下面将内容写入至一个静态文件 $fp = fopen('news.html', 'w'); fwrite($fp, $content); fclose($fp); //OK, 到这里这个news.html静态页就生成了, 你可以处理你下一步的工作了 ?> |
好了结合上面的方法我们生成文件几乎原理都一样,先把数据读取出来然后给我们定义好的模板,最后利用fopen函数生成一个.html的文件
原文来自:http://www.111cn.net/。
php生成html文件的多种方法介绍的更多相关文章
- vs工程生成dll文件及其调用方法
转载:https://blog.csdn.net/weixin_44536482/article/details/91519413 vs工程生成dll文件及其调用方法 ...
- 【SW4STM32生成 hex文件的设置方法】
SW4STM32生成 hex文件的设置方法 开发环境:WIN7_64 + SW4STM32 联系方式:yexiaopeng1992@126.com 修改: 2018年1月21日 在这周,有一个热心的 ...
- LR11录制手机/pad App脚本多种方法介绍(Mobile App补丁包)
总体来说,通过LR录制手机脚本的方式有三种:1)通过代理方式录制,保证手机电脑在同一个网段:2)通过抓包录制,在手机上安装Mobile Recorder:3)通过安卓模拟器录制,本地安装android ...
- php生成excel文件的简单方法
生成excel文件,最简单的莫过于把数据库的数据导入到excel就行了. 生成excel 当然使用的是 phpExcel http://www.jbxue.com/tags/phpexcel.html ...
- keil无法生成axf文件之解决方法
参考:参考<鱼鹰单片机>https://blog.csdn.net/weixin_42876465/article/details/88356890 其实很简单 默认情况是生成 .axf ...
- Loadrunner11 录制手机App脚本多种方法介绍
总体来说,通过LR录制手机脚本的方式有三种:1)通过代理方式录制,保证手机电脑在同一个网段:2)通过抓包录制,在手机上安装Mobile Recorder:3)通过安卓模拟器录制,本地安装Android ...
- Linux文件查看/编辑方法介绍
转载:https://www.centos.bz/2011/10/linux-file-view-edit/ cat 命令介绍 cat 命令的原含义为连接(concatenate), 用于连接多个文件 ...
- JS生成随机字符串的多种方法
这篇文章主要介绍了JS生成随机字符串的方法,需要的朋友可以参考下 下面的一段代码,整理电脑时,记录备查. <script language="javascript"> ...
- PHP读取文件的多种方法
1.传统的方法 fopen, fclose feof:file.end of file 例子: $file_handle = fopen("c:\\myfile.txt", &qu ...
随机推荐
- Java小游戏贪吃蛇
package snake; import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.Color;import java ...
- haligong2016
A 采用递推的方法,由于要到达棋盘上的一个点,只能从左边或者上边过来,根据加法原则,到达某一点的路径数目,就等于到达其相邻的上点和左点的路径数目的总和.所有海盗能达到的点将其路径数置为0即可. #in ...
- Virtualbox安装USB2.0/3.0
系统:Ubuntu16.04 软件:Virtualbox5.1 1.打开Virtualbox,不启动虚拟系统. 2.点击设置->USB->启动usb2.0. 3.若发现不能启用,则到官网下 ...
- 反斜杠在JSP中的两种不同的含义
/ 在不同条件下的不同含义 / 代表WEB应用的根路径的情况:/ 交给 Servlet容器来处理 请求转发时: request.getRequestDispatcher("/xxxx&quo ...
- html/css 钢琴黑白格布局
效果图:
- Calculator(补)
MyGitHub 刚刚开始时确实是连题目都看不懂= =,从第二行的新建类开始,就不知题目所云.所以我的困难比很多同学都要 开始得早一些--从题目第二行开始. 准确的说,当我按照题目要求新建了一个sca ...
- Python函数式编程学习笔记
High order function map(f,Iterable),将f依次作用在Iterable的每个元素然后返回一个Iterator,再用list(map(f,Iterable))进行转换得到 ...
- ComboxEdit实现二级联动
private void cmbXPROVINCE_SelectedIndexChanged(object sender, EventArgs e) { DataBind(cmbXPROVINCE, ...
- TortoiseGit流程安装使用手册
end if
- Flapper Bird的学习笔记(三)
因为我有一个超屌的梦想,所以就绝不会做一个孬种的追梦人! 完成音效的添加 单例模式 游戏的状态切换 1. 单例模式 首先呢,说一下单例模式.何为单例?单例模式是一种常用的软件设计模式.在它的核心结构中 ...