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.pswp.cn/news/394936.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394936.shtml
英文地址,請注明出處:http://en.pswp.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…