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 ...
随机推荐
- 打开hibernate文件报警告
在web工程中新建一个,Hibetnate项目,打开配置文件报警高错误,This project is not a MyEclipse Hiberbate Project. Assuming Hibe ...
- R语言实战(一)介绍、数据集与图形初阶
本文对应<R语言实战>前3章,因为里面大部分内容已经比较熟悉,所以在这里只是起一个索引的作用. 第1章 R语言介绍 获取帮助函数 help(), ? 查看函数帮助 exampl ...
- Load Runner录制C/S客户端
1. 打开应用程序 2. 点击如下菜单 弹出窗口如下 3. 点击New,弹出窗口如下,选择Web(HTTP/HTML) 4. 点击Create,弹出窗口 5. 点击OK, ...
- java_ee_sdk-7u2的安装与 启动
1.在oracle官方网站上下载JAVA EE SDK,现在最新的版本是java_ee_sdk-7u2 2.最新的版本是免安装模式,所以比较方便.但是通常免安装模式没有快捷方式,不知道怎么启动.怎么使 ...
- html5对密码加密
今天找了几个关于对html5的密码加密的方法,仅供参考 1.base64加密:在页面中引入base64.js文件,调用方法为: <html> <head> <meta c ...
- javascript版快速排序和冒泡排序
var sort = (function () { //快速排序 var quickSort = { partition: function (array, low, high) { if (low ...
- AFNetworking到底做了什么?(二)
接着上一篇的内容往下讲,如果没看过上一篇内容可以点这: AFNetworking到底做了什么? 之前我们讲到NSUrlSession代理这一块: 代理8: /* task完成之后的回调,成功和失败 ...
- a 标签中调用js的几种方法 文章摘自他人
我们常用的在a标签中有点击事件:1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题 ...
- 制作简单的2D物理引擎(零)
最近发现了Github上的开源物理引擎项目Matter.js,对它很感兴趣,发现源码并不算长,算上注释大约1万行左右,值得剖析一番.Matter.js实现一个最小化的2D物理引擎,性能不错,故打算用C ...
- CentOS_7.2编译安装PHP_5.6.20添加扩展模块
添加ZendGuardLoader扩展: # 解压ZendGuardLoader.so到"/usr/local/php/lib/php/extensions/no-debug-non-zts ...