ThinkPHP生成静态页buildHtml方法
原来ThinkPHP自带了生成静态页的函数buildHtml,使用起来很方便!最新的手册里没写这个方法,向大家介绍一下。
|
1
2
3
4
5
6
7
8
9
10
11
|
protected function buildHtml($htmlfile='',$htmlpath='',$templateFile='') {
$content = $this->fetch($templateFile);
$htmlpath = !empty($htmlpath)?$htmlpath:HTML_PATH;
$htmlfile = $htmlpath.$htmlfile.C('HTML_FILE_SUFFIX');
if(!is_dir(dirname($htmlfile)))
// 如果静态目录不存在 则创建
mk_dir(dirname($htmlfile));
if(false === file_put_contents($htmlfile,$content))
throw_exception(L('_CACHE_WRITE_ERROR_').':'.$htmlfile);
return $content;
}
|
使用方法:
|
1
|
$this->buildHtml('静态文件', '静态路径','模板文件');
|
参数一:静态文件,是指生成后的静态文件名,文件保存路径完整的就是:静态路径/静态文件。例如静态文件设置a/index.那么保存的路径就是项
目路径/Html/a/index.html(默认的静态路径在项目路径的Html文件夹下,没有可以自己创建)
参数二:静态路径,上面已经说明了默认的路径,3.0中可以在入口文件里加入参数来更改静态路径。
define(‘HTML_PATH’, ‘./’);(将静态路径义为网站根目录)
参数三:模板文件,我感觉官方这个描述是不正确的,准确的来说应该是目标模块,就是需要生成静态文件的模块。格式:模块名:操作。比如要生成Index下的a方法为静态文件,那就是Index:a。如果为空则默认生成当前操作的静态文件。
生成静态页,我们要选择一个静态模板页,静态化网页的原理也就是替换模板中的变量,所以我们要把需要替换的变量的值获取出来,比如
|
1
2
3
4
5
|
$this->assign ( 'webname', $websites ['name'] );
$this->assign ( 'siteid', $siteid );
$this->assign ( 'type', $type );
$this->assign ( 'header', $websites ['templatedirectory'] . '@Public_header' );
$this->assign ( 'footer', $websites ['templatedirectory'] . '@Public_footer' );
|
静态模板页有相应的{$header},{$footer}等,使用buildHtml方法后,就把这些变量给替换掉了。是不是很简单。
ThinkPHP生成静态页buildHtml方法的更多相关文章
- thinkPHP实现静态页的方法-buildHtml
thinkphp全站静态页实现方法! 1:在根目录下的全局index.php中加下面这行: define('HTML_PATH', './htm');//生成静态页面的文件位置 2:在项目的配置文件c ...
- thinkphp全站静态页实现方法!
1:在根目录下的全局index.php中加下面这行: define('HTML_PATH', './htm');//生成静态页面的文件位置 2:在项目的配置文件config.php中加下面这行: 'H ...
- thinkphp全站静态页实现方法
1:在根目录下的全局index.php中加下面这行: define('HTML_PATH', './htm');//生成静态页面的文件位置 2:在项目的配置文件config.php中加下面这行: 'H ...
- 基于PHP生成静态页的实现方法
t1.php 复制代码 代码如下: <?php// 方法一根据模版生成静态页面// replaceTemplateString函数用于替换模板中指定字符串function replaceTemp ...
- ThinkPHP的静态化页面方法
原来ThinkPHP自带了生成静态页的函数buildHtml,使用起来很方便!最新的手册里没写这个方法,向大家介绍一下. protected function buildHtml($htmlf ...
- ASP.NET MVC 解析模板生成静态页一(RazorEngine)
简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法 ...
- NET MVC RazorEngine 解析模板生成静态页
ASP.NET MVC 解析模板生成静态页一(RazorEngine) 简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是 ...
- dedesmc 手机端生成静态页
dedesmc 手机端生成静态页 1.首先下载插件,下载地址:https://pan.baidu.com/s/1Nfx_KBYuxRkZ7VzoPxy28g 密码:83x7 2.进入 dedecms ...
- PHP生成静态页面的方法
在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存 等实现页面静态化,今天就以PHP实例教程形 ...
随机推荐
- linux中 > 、>> 的用法
linux中>表示覆盖原文件内容(文件的日期也会自动更新),>>表示追加内容(会另起一行,文件的日期也会自动更新). 1 将history命令执行的结果保存到history.log文 ...
- RaspberryPI 3b 技术总结(包括Linux)
安装系统,无屏幕,无网线,windows下 第一步当然是把ROM(官方系统)和刷写工具备好,TF卡一张,当然必须有读卡设备. 启动Etcher,将ROM刷入TF卡,这需要挺长一段时间,完毕后将会出现四 ...
- Java多线程学习——死锁的一个容易理解的例子
发生死锁的情况:多个线程需要同时占用多个共享资源而发生需要互相死循环等待的情况 public class Mirror { //镜子 } public class Lipstick { //口红 } ...
- 【Linux开发】OpenCV在ARM上的移植
与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方法很麻烦,不仔细操作很容易出错 ...
- python下对mysql数据库的链接操作
参考网址: https://blog.csdn.net/guofeng93/article/details/53994112 https://blog.csdn.net/Chen_Eris/artic ...
- [转帖]Twitter 宣布抛弃 Mesos,全面转向 Kubernetes
Twitter 宣布抛弃 Mesos,全面转向 Kubernetes http://www.itpub.net/2019/05/06/1788/ 事实标准了. 作者 | 阿里云智能高级技术专家 张 ...
- CAS单点登录系统--进阶
2.CAS服务端数据源设置 2.1需求分析 我们现在让用户名密码从我们的优乐选的user表里做验证 2.2配置数据源 (1)修改cas服务端中web-inf下deployerConfigContext ...
- linux下安装msgpack,yar,phalcon
安装msgpack扩展 下载:http://pecl.php.net/package/msgpack cd /usr/local tar zxvf msgpack-0.5.5.tgz cd msgpa ...
- PythonDay07
第七章 今日内容 基础数据类型补充 以后会遇到的坑 二次编码 基础类型补充 stra = "One two"print(a.capitalize()) # 首字母大写print ...
- B - 卿学姐与基本法 (离散化+成段更新+区间求和)
卿学姐与基本法 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...