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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day01语法python入门_2

十:while循环 1.基本循环 while条件#循环体#如果条件为真,那么循环体则执行#如果条件为假,那么循环体不执行。2.break break 用于退出所有循环 while True:print "123"breakprint "456"3.continue while True:print &quo…

Python dict() 函数

Python dict() 函数 Python 内置函数 描述 dict() 函数用于创建一个字典。 语法 dict 语法: class dict(**kwarg) class dict(mapping, **kwarg) class dict(iterable, **kwarg) 参数说明: **kwargs -- 关键字mapping -- 元素的容器。iterable -- 可迭代…

贝塞尔曲线:原理、自定义贝塞尔曲线View、使用!!!

一、原理 转自:http://www.2cto.com/kf/201401/275838.html Android动画学习Demo(3) 沿着贝塞尔曲线移动的Property Animation Property Animation中最重要,最基础的一个类就是ValueAnimator了。Property Animation利用ValueAnimator来跟踪记录对象属性已…

ios pusher使用_如何使用JavaScript和Pusher构建实时图

ios pusher使用by Rahat Khanna通过拉哈特汉娜 如何使用JavaScript和Pusher构建实时图 (How to build a Realtime Graph using JavaScript and Pusher) The world needs everything uber-fast now. There are plenty of data streams being generated by different systems ev…

python数据分析与基础实战_《python数据分析与挖掘实战》基础概念

数据建模.png 数据挖掘的基本任务:利用分类与预测、聚类分析、关联规则、时序模式、偏差检测、智能推荐等方法,帮助企业提取数据中蕴含的商业价值,提高企业竞争力。 数据探索:异常值分析、缺失值分析、相关分析和周期性分析。 数据预处理:数据…

简述JAVA线程调度的原理,Rxjava原理(二)--线程调度

1. 创建线程池和线程管理策略分析// 在开发中使用Rxjava来完成线程切换会调用到以下方法(还有几个就不一一列举了,原理一样的),那么就从这里开始分析Schedulers.io()Schedulers.computation()Schedulers.newThread()AndroidSchedulers.mainThread()当我们…

[前端随笔][css] 弹性布局

说在前面 弹性布局&#xff0c;顾名思义就是有弹性&#xff0c;能够根据屏幕/当前空间大小自由伸缩的。使用弹性布局可以很好的适应各种尺寸的客户端。 关键代码 display:flex;    设定元素为弹性布局  <文档传送门> box-flex: 参数;   设定元素为弹性布局  &…

不同的模块中定义同样的宏为不同的值合法吗_如何创建自定义的建模规范

本文摘要&#xff1a;主要介绍如何创建自定义的建模规范检查&#xff0c;以及在建模规范检查中&#xff0c;如何增加自动修正模型使之符合规范。比如我们想创建一个自定义的规则&#xff0c;对于constant模块&#xff0c;1. 如果value是参数的话&#xff0c;则输出数据类型必须…

DBCP连接池配置常用参数说明

参数默认值说明username\传递给JDBC驱动的用于建立连接的用户名password\传递给JDBC驱动的用于建立连接的密码url\传递给JDBC驱动的用于建立连接的URLdriverClassName\使用的JDBC驱动的完整有效的Java 类名initialSize 0初始化连接:连接池启动时创建的初始化连接数量,1.2版本后…

科大讯飞 ai算法挑战赛_为井字游戏挑战构建AI算法

科大讯飞 ai算法挑战赛by Ben Carp通过本卡尔普 为井字游戏挑战构建AI算法 (Building an AI algorithm for the Tic-Tac-Toe challenge) As part of the freeCodeCamp curriculum, I was challenged build a Tic-Tac-Toe web app. It was a real pleasure.作为freeCodeCamp课程…

js serialize php 解,[转]JavaScript 版本的 PHP serialize/unserialize 完整实现

下载: phpserializer.js/* phpserializer.js - JavaScript to PHP serialize / unserialize class.** This class is designed to convert php variables to javascript* and javascript variables to php with a php serialize unserialize* compatible way.** Copyright (C) …

Git 的 .gitignore 配置

.gitignore 配置文件用于配置不需要加入版本管理的文件&#xff0c;配置好该文件可以为我们的版本管理带来很大的便利&#xff0c;以下是个人对于配置 .gitignore 的一些心得。 1、配置语法&#xff1a; 以斜杠“/”开头表示目录&#xff1b; 以星号“*”通配多个字符&#xff…

wsdl文件是怎么生成的_C++ 动态库.dll的生成---超级详细!!!

怎么将建好的工程生成.dll工程&#xff1f;1、在C中打开工程2、运行结果&#xff1a;输出Print修改开始&#xff1a;1、打开属性。2、修改以下内容&#xff1a;目标文件扩展名&#xff0c;由.exe--》.dll,直接删除修改即可配置类型&#xff0c;由.exe--》.dll,下拉菜单可选择最…

时钟设置

date --set"05/31/16 18:16" 时钟设置 设置系统时间# date --set“07/07/06 10:19" &#xff08;月/日/年 时:分:秒&#xff09;2、hwclock/clock查看硬件时# hwclock --show# clock --show设置硬件时间# hwclock --set --date"07/07/06 10:19" &…

《成为一名机器学习工程师》_成为机器学习的拉斐尔·纳达尔

《成为一名机器学习工程师》by Sudharsan Asaithambi通过Sudharsan Asaithambi 成为机器学习的拉斐尔纳达尔 (Become the Rafael Nadal of Machine Learning) One year back, I was a newbie to the world of Machine Learning. I used to get overwhelmed by small decisions…

HTTP基本认证(Basic Authentication)的JAVA示例

大家在登录网站的时候&#xff0c;大部分时候是通过一个表单提交登录信息。但是有时候浏览器会弹出一个登录验证的对话框&#xff0c;如下图&#xff0c;这就是使用HTTP基本认证。下面来看看一看这个认证的工作过程:第一步: 客户端发送http request 给服务器,服务器验证该用户…

php-fpm 内存 facebook,【百家号】脸书百科,安装php-fpm-5.4.16-42.遇到的小问题 Web程序 - 贪吃蛇学院-专业IT技术平台...

环境&#xff1a;redhat 7.2版本 yum源也是7.2的iso[[email protected] lnmp_soft]# yum -y install php-fpm-5.4.16-42.el7.x86_64.rpm已加载插件&#xff1a;langpacks, product-id, search-disabled-repos, subscription-managerThis system is not registered to Red Hat S…

Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)

昨晚的没来得及打&#xff0c;最近错过好几场CF了&#xff0c;这场应该不算太难 A. Unimodal Arraytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputArray of integers is unimodal, if: it is strictly increasing in…

python能print中文吗_python怎么print汉字

今天就为大家分享一篇python中使用print输出中文的方法&#xff0c;具有很好的参考价值&#xff0c;希望对大家有所帮助。看Python简明教程&#xff0c;学习使用print打印字符串&#xff0c;试了下打印中文&#xff0c;不行。&#xff08;推荐学习&#xff1a;Python视频教程&a…

ajax的一些相关

1、AJAX Asynchronous&#xff08;异步的&#xff09; JavaScript and XML AJAX是能不刷新整个网页的前提下&#xff0c;更新内容。通过少量的数据交换&#xff0c;达成局部页面刷新的效果。 而form表单提交经常是刷新整个页面&#xff0c;很繁琐 2、AJAX是基于现有的Internet…