如何关闭ThinkPHP的模板缓存
ThinkPHP的模板缓存是无奈关闭的,因为内置的模板引擎是一个编译型的模板引擎,必须经过编译后生成一个可执行的缓存文件才能被执行。但是可以设置缓存的有效期,例如设置
‘TMPL_CACHE_TIME’ =>3, // 模板缓存有效期 -1 永久 单位为秒
这样,每隔3秒系统会自动重新编译模板文件。默认的配置是-1 表示永久缓存,除非模板文件有改动,模板文件一旦有改动会自动重新编译,如果是包括进来的外部文件有修改,系统是不会自动重新编译的。
ThinkPHP的模板如何使用PHP本身作为模板引擎
ThinkPHP内置的模板引擎也支持直接在模板文件里面使用PHP代码,如果你不想使用任何模板引擎标签的话,可以配置模板引擎类型为PHP就可以完全使用php本身作为框架的模板引擎,在项目配置里面添加:
‘TMPL_ENGINE_TYPE’ =>’php’
ThinkPHP的模板可以使用第三方的的模板引擎吗
ThinkPHP框架允许你使用第三方的模版引擎。目前官方已经提供了Smarty模版引擎的插件,已经有人给ThinkPHP开发了TemplateLite、EaseTempalte和DzTemplate模版引擎插件。而且对于自己熟悉的模版引擎来说,非常容易扩展类似的插件。然后在项目配置文件里面配置使用何种模板引擎就可以了。
如何输出其他模块的操作模板
系统提供的display方法支持调用不同位置的模板文件,包括其他模块的操作,例如下面的方法可以调用Member模块的read操作模板:
$this->display(’Member:read’);
模板文件开头使用是什么意义
这表示当前模板文件要加载html标签库,这样在模板文件里面就能使用类似
之类的标签了,内置的模板引擎是基于标签库和XML解析的,所以必须要引入相应的标签库才能进行标签解析,因为系统默认会加载cx标签库,所以
这样的标签是不需要自己加载标签库的。Cx标签库之外的都需要在模板文件的开头用< div>

某些编辑器无奈识别XML标签,模板标签的定界符可以修改吗
内置的模板引擎默认采用的是XML标签作为标签的定界符,但是可以修改的,下面是系统默认的配置,包括普通模板引擎和标签库的标签的起始和结束标记:
‘TMPL_L_DELIM’=>’{', // 模板引擎普通标签开始标记
‘TMPL_R_DELIM’=>’}', // 模板引擎普通标签结束标记
‘TAGLIB_BEGIN’=>’<’, // 标签库标签开始标记
‘TAGLIB_END’=>’>’, // 标签库标签结束标记
需要注意的两种类型的标记不要设置为相同的,以免引起混淆而无奈正常解析。
我不想直接输出模板文件的内容,而是想获取模板输出的内容应该怎么处理
Action类的display方法是用于渲染模板文件并输出,可以使用fetch方法渲染模板文件但不是直接输出,而是返回内容。
模板文件里面经常使用到的__URL__和__APP__有什么作用
如果使用了内置模板引擎的话,可以在模板文件里面使用一些已经定义好的特殊字符串,系统在解析模板的时候会自动替换成相关的系统常量,这些字符串的解析进程是在模板编译的时候进行的。这些可替换的字符串包括:
../public //项目公共目录
__PUBLIC__ //网站公共目录
__ROOT__ //网站根目录
__TMPL__//当前模板目录
__APP__ //当前项目地址
__URL__ //当前模块地址
__ACTION__ //当前操作地址
__SELF__ //当前页面地址
如何在模板文件里面直接输出系统变量和常量
系统变量,必须以$Think.打头,如
{$Think.server.script_name } //取得$_SERVER变量
{$Think.session.session_id } // 获取$_SESSION变量
{$Think.get.pageNumber } //获取$_GET变量
{$Think.cookie.name } //获取$_COOKIE变量
输出系统常量
{$Think.const.__FILE__ }
{$Think.const.MODULE_NAME }
 
 

APP_PATH // 当前项目目录
APP_NAME // 当前项目名称
ACTION_NAME // 当前操作名称

CACHE_PATH // 项目模版缓存目录
CONFIG_PATH //项目配置文件目录
COMMON_PATH//项目公共文件目录

DATA_PATH // 项目数据文件目录
GROUP_PATH //当前分组名称

HTML_PATH//项目静态文件目录

IS_APACHE // 是否属于 Apache

IS_CGI//是否是CGI模式

IS_IIS //是否属于 IIS
IS_WIN //是否属于Windows 环境
IS_LINUX //是否属于 Linux 环境
IS_FREEBSD //是否属于 FreeBsd 环境

LIB_PATH // 项目类库目录
LOG_PATH // 项目日志文件目录
LANG_PATH // 项目语言文件目录

LANG_SET // 浏览器语言

MEMORY_LIMIT_ON // 是否有内存使用限制php.ini 当中是否有内存使用大小的限制

MODULE_NAME //当前模块名称

MAGIC_QUOTES_GPC // MAGIC_QUOTES_GPC,是否开启自动转义

TMPL_PATH // 项目模版目录
TEMP_PATH //项目临时文件目录

THINK_VERSION //ThinkPHP 版本号

THINK_PATH // ThinkPHP 系统目录

TMPL_FILE_NAME //当前操作的默认模版名(含路径)
TEMPLATE_NAME //当前模版名称
TEMPLATE_PATH //当前模版路径
PLUGIN_PATH // 项目插件文件目录
VENDOR_PATH // 第三方类库目录
NOW_TIME // 当前时间戳
OUTPUT_GZIP_ON // 是否开启输出压缩
__ROOT__ // 网站根目录地址
__APP__ // 当前项目(入口文件)地址
__URL__ // 当前模块地址
__ACTION__ // 当前操作地址
__SELF__ // 当前 URL 地址

__CRREUT_//当前模块模板地址
WEB_PUBLIC_URL //网站公共目录
APP_PUBLIC_URL //项目公共模版目录

模板中使用的系统常量
__ROOT__ // 网站根目录地址
__APP__ // 当前项目(入口文件)地址
__URL__ // 当前模块地址
__ACTION__ // 当前操作地址
__SELF__ // 当前 URL 地址
__PUBLIC__ // 网站公共目录
../Public(不区分大小写) // 项目公共模版目录

ThinkPHP模板(一)的更多相关文章

  1. ThinkPHP 模板substr的截取字符串函数

    ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...

  2. [转]thinkphp 模板显示display和assign的用法

    thinkphp 模板显示display和assign的用法 $this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论 ...

  3. Thinkphp 模板中直接对数据处理 模板中使用函数 中文字符串截取

    1.Thinkphp 模板中直接对数据处理:{$data.name|substr=0,3} 2.中文字符串截取函数:mb_substr=0,14,'utf-8' 3.中文字符串统计:iconv_str ...

  4. ThinkPHP 模板判断输出--Switch 标签

    ThinkPHP 模板引擎支持 switch 判断,根据不同情况输出不同的值,格式如下:<switch name="变量名" >    <case value=& ...

  5. thinkphp模板中foreach循环没数据的错误解决

    从控制器方法中$this->assign();函数将值传递给html模板 但是模板不显示数据,直接出来的是代码,效果就和html中写了php代码不能解析一样. 原来是我将thinkphp框架的引 ...

  6. ThinkPHP 模板截取字符串 【转载】

    对于英文字符可使用如下形式(模板中): {$vo.title|substr=,} 如果是中文字符thinkphp提供了msubstr,用法如下: function msubstr($str, $sta ...

  7. (转) ThinkPHP模板自定义标签使用方法

    这篇文章主要介绍了ThinkPHP模板自定义标签使用方法,需要的朋友可以参考下  转之--http://www.jb51.net/article/51584.htm   使用模板标签可以让网站前台开发 ...

  8. thinkPHP 模板的使用技巧(十三)

    原文:thinkPHP 模板的使用技巧(十三) 模板的使用技巧:页面跳转 .模板包含.模板渲染.模板的继承 页面跳转 <a href='__URL__/index'>我要跳转到首页面,用这 ...

  9. thinkPHP 模板中的语法知识 详细介绍(十二)

    原文:thinkPHP 模板中的语法知识 详细介绍(十二) 本章节:介绍模板中的语法,详细的语法介绍 一.导入CSS和JS文件    ==>记住常量的是大写 1.css link .js  sc ...

  10. 转换器2:ThinkPhp模板转Django模板

    前天写了个<ThinkPhp模板转Flask模板> 居然被同事鄙视了,原因是他用Django,我用Flask,为了避免被他继续安利Django的强大.我决定写一个Django模板转换器. ...

随机推荐

  1. Karel运行环境配置

    1.下载 见http://wenku.baidu.com/view/24762ced998fcc22bcd10d5e.html 2.界面空白问题 问题:运行Karel后,发现整个界面空白一片,没有任何 ...

  2. 使用服务器端控制AJAX页面缓存

    你知道 response.setHeader("Cache-Control","no-cache"); 这条语句是干什么的吗? 这是用来防止浏览器缓存动态内容生 ...

  3. 【LeetCode】9 & 234 & 206 - Palindrome Number & Palindrome Linked List & Reverse Linked List

    9 - Palindrome Number Determine whether an integer is a palindrome. Do this without extra space. Som ...

  4. Python编程中的反模式

    Python是时下最热门的编程语言之一了.简洁而富有表达力的语法,两三行代码往往就能解决十来行C代码才能解决的问题:丰富的标准库和第三方库,大大节约了开发时间,使它成为那些对性能没有严苛要求的开发任务 ...

  5. 关于DIV+CSS和XHTML+CSS的理解

    WEB标准是一系列标准的集合,并不是仅“DIV+CSS”布局就可以实现.以CSS网页布局只是标准的基础之一.“DIV+CSS”布局只是一种通俗的称呼罢了.而我们学习的目标在于以XHTML建立良好的语义 ...

  6. Window.onLoad 和 DOMContentLoaded事件的先后顺序

    相信写js的,都知道window.onload吧,但是并不是每个人都知道DOMContentLoaded,其实即使你不知道,很有可能你也经常使用了这个东西. 一般情况下,DOMContentLoade ...

  7. MVC用户登录方法(lamda表达式)

        public bool ValidateUser(account model) { using (assertEntities db = new assertEntities()) { acc ...

  8. dom select选单

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. CST和GMT时间的区别

    CST和GMT时间的区别 今天遇到一个奇怪的问题,在服务器端通过 c# 获取当前时间为 Fri Aug 28 09:37:46 CST 2009, 转化为 GMT时间为:28 Aug 2009 01: ...

  10. 适应所有浏览器的cookie

    //设置cookie的方法 weiyingfunction SetCookie(a, b) {        var d = new Date();    var v = arguments;    ...