如何关闭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. Symfony2学习笔记之表单

    对于一个Web开发者来说,处理HTML表单是一个最为普通又具挑战的任务.Symfony2集成了一个Form组件,让处理表单变的容易起来.在这一节里,我们将从基础开始创建一个复杂的表单,学习表单类库中最 ...

  2. hdu 1969(二分)

    题意:给了你n个蛋糕,然后分给m+1个人,问每个人所能得到的最大体积的蛋糕,每个人的蛋糕必须是属于同一块蛋糕的! 分析:浮点型二分,二分最后的结果即可,这里要注意圆周率的精度问题! #include& ...

  3. c#中const、static、readonly的区别

    1. const与readonly const ,其修饰的字段只能在自身声明时初始化. Readonly 是只读变量,属于运行时变量,可以在类初始化的时候改变它的值.该类型的字段,可以在声明或构造函数 ...

  4. shell脚本基础——常用的sed命令举例

    一般在实际使用编辑器的过程中 , 常需要执行替换文件中的字符串.移动.删除.与搜寻数据行等等动作.当然 , 一般交互式编辑器(如 vi.emacs)都能做得到上述功能 , 但文件一旦有大量上述编辑需求 ...

  5. [Everyday Mathematics]20150214

    设 $\dps{x\in \sex{0,\frac{\pi}{2}}}$, 试比较 $\tan(\sin x)$ 和 $\sin(\tan x)$.

  6. 实现两个N*N矩阵的乘法,矩阵由一维数组表示

    实现两个N*N矩阵的乘法,矩阵由一维数组表示. 先介绍一下矩阵的加法: void Add(int rows, int cols) { ;i<rows;i++) { ;j<cols;j++) ...

  7. Linux基本命令(7)文件阅读的命令

    文件阅读的命令 命令 功能 head 查看文件的开头部分 tail 查看文件结尾的10行 less less是一个分页工具,它允许一页一页地(或一个屏幕一个屏幕地)查看信息 more more是一个分 ...

  8. Matlab命令——目录操作(windows&Linux)

    Matlab命令——目录操作(windows&Linux) 1. filesep用于返回当前平台的目录分隔符,Windows是反斜杠(\),Linux是斜杠(/).有时此命令结合ispc命令使 ...

  9. 将dataset写入数据库

    最近在将excel中的文件导入到数据库中,用程序进行编写,由于数据量较大所以速度很慢,后来采用了SqlBulkCopy类,解决了速度的问题,我就insert语句,sqldataadapter.upda ...

  10. geeksforgeeks@ Largest Number formed from an Array

    http://www.practice.geeksforgeeks.org/problem-page.php?pid=380 Largest Number formed from an Array G ...