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文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值