thinkphp html php文件,ThinkPHP生成静态HTML文件
View.class.php
/**
* 加载模板和页面输出 可以返回输出内容
* @access public
* @param string $templateFile 模板文件名
* @param string $charset 模板输出字符集
* @param string $contentType 输出类型
* @param string $content 模板输出内容
* @param string $prefix 模板缓存前缀
* @return mixed
*/
public function display($templateFile='',$charset='',$contentType='',$content='',$prefix='') {
G('viewStartTime');
// 视图开始标签
Hook::listen('view_begin',$templateFile);
// 解析并获取模板内容
$content = $this->fetch($templateFile,$content,$prefix);
// 输出模板内容
$this->render($content,$charset,$contentType);
// 视图结束标签
Hook::listen('view_end');
}
/**
* 解析和获取模板内容 用于输出
* @access public
* @param string $templateFile 模板文件名
* @param string $content 模板输出内容
* @param string $prefix 模板缓存前缀
* @return string
*/
public function fetch($templateFile='',$content='',$prefix='') {
if(empty($content)) {
$templateFile = $this->parseTemplate($templateFile);
// 模板文件不存在直接返回
if(!is_file($templateFile)) E(L('_TEMPLATE_NOT_EXIST_').':'.$templateFile);
}
// 页面缓存
ob_start();
ob_implicit_flush(0);
if('php' == strtolower(C('TMPL_ENGINE_TYPE'))) { // 使用PHP原生模板
$_content = $content;
// 模板阵列变量分解成为独立变量
extract($this->tVar, EXTR_OVERWRITE);
// 直接载入PHP模板
empty($_content)?include $templateFile:eval('?>'.$_content);
}else{
// 视图解析标签
$params = array('var'=>$this->tVar,'file'=>$templateFile,'content'=>$content,'prefix'=>$prefix);
Hook::listen('view_parse',$params);
}
// 获取并清空缓存
$content = ob_get_clean();
// 内容过滤标签
Hook::listen('view_filter',$content);
// 输出模板文件
return $content;
}
接下来和《
ThinkPHP生成HTML静态文件和模板缓存的过程
》的过程一样,只不过在用到WriteHtmlCacheBehavior类
WriteHtmlCacheBehavior.class.php
/**
* 系统行为扩展:静态缓存写入
*/
class WriteHtmlCacheBehavior {
// 行为扩展的执行入口必须是run
public function run(&$content){
if(C('HTML_CACHE_ON') && defined('HTML_FILE_NAME')) {
//静态文件写入
Storage::put(HTML_FILE_NAME , $content,'html');
}
}
}
这里读取了,配置中
HTML_CACHE_ON来判断是否要生成静态HTML文件
thinkphp html php文件,ThinkPHP生成静态HTML文件相关推荐
- freemarker html 乱码,Freemarker生成静态html文件及中文乱码的问题.pdf
Freemarker生成静态html文件及中文乱码的问题,freemarker静态化页面,freemarker静态化,freemarker乱码,freemarker静态方法,freemarker中文乱 ...
- vue生成静态js文件_如何立即使用Vue.js生成静态网站
vue生成静态js文件 by Ondřej Polesný 通过OndřejPolesný 如何立即使用Vue.js生成静态网站 (How to generate a static website w ...
- Freemarker生成静态化文件
页面 test1.ftl <!DOCTYPE html> <html> <head><meta charset="utf-8">&l ...
- automake生成静态库文件_Automake 详解
automake配置 一.安装 命令:sudo apt-get install automake 二.配置过程 1. 使用Autoscan工具生成configure.ac文件 命令: autoscan ...
- automake生成静态库文件_动手 | 奶奶级的动态库入门
程序编译过程 库文件 静态链接和动态链接的区别? 从0开始 - 创建和使用静态链接库 创建静态库项目 向静态库中添加文件 编译静态库 创建引用静态库的C++控制台应用 在应用中使用静态库功能 从0开始 ...
- PHP代码为什么不能直接保存HTML文件——PHP生成静态页面教程
1.服务器会根据文件的后缀名去进行解析,如果是HTML文件则服务器不会进行语法解析,而是直接输出到浏览器. 2.如果一个页面中全部都是HTML代码而没有需要解析的PHP语法,则没有必要保存为PHP文件 ...
- 生成html页面的ftl文件,FreeMarker生成静态HTML页面的工具类FreeMarkerUtil
FreeMarker生成静态HTML页面的工具类FreeMarkerUtil 一.FreeMarkerUtil工具类: import com.huaxia.entity.News; import co ...
- automake生成静态库文件_基于CocoaPods的组件化原理及私有库实践
轮子为什么会存在 智人能在残酷的进化大战中存活下来,原因之一就是智人懂得将知识沉淀成外物,辅助彼此之间的合作,从而使得整个群体产生了规模效应,即1+1>2的效果. 从一个角度上说,石器时代是基于 ...
- 解压与压缩ramdisk.img文件,生成uramdisk.img文件
1. 在myandroid/out/target/product/imx51_bbg目录下可以找到要解压的ramdisk.img文件. 通过file命令可以查看ramdisk.img文件的类型: ro ...
最新文章
- 谷歌全新轻量级新模型ALBERT刷新三大NLP基准
- ASP.NET BookMark
- Expect 安装 on centos7
- 健康研究总结摘录专题
- java退出循环吗,在Java中退出循环
- 10 大方法,让您的客服中心提供更出色的服务
- inavFilter 惯导融合算法
- SiteServer CMS 新版本 V6.15(2020年6月1日发布)
- 【无线lora模块星型组网】lora无线模块专利技术 跳频扩频 支持200节点并发
- Java 8 方法引用 (Method Reference)快速介绍与示例
- java set collection_Java的Collection接口和Set接口?
- 金橙子打标卡二次开发应用
- 计算机毕业设计ssm汽车租赁管理系统mfobv系统+程序+源码+lw+远程部署
- Expandable的条目存在抢点击事件的控件
- linux怎样压缩文件夹加密文件,linux下文件加密压缩和解压的方法
- 苹果CMS绑定分类失败,刷新就丢失!
- Apache Log4j 2.0-rc1 发布
- [21S01][1136] Column count doesn‘t match value count at row 1 报错分析
- Drop Shipment PO以及Replenishment PO有何异同?
- 关于学计算机趣味段子,让你开怀大笑的段子:幽默风趣,读一遍笑一遍!