模板特殊字符串替换
ThinkPHP 系统定义了一些特殊的字符串(常量)以方便在模板中的使用,这些特殊字符串给模板的应用带来了极大的便利。
这些特殊的字符串是在进行模板输出之前有系统自动替换的,默认的模板特殊字符串如下:
/Tpl/Home/default/Public:当前项目的公共模板目录,通常是 /项目目录/Tpl/default/Public/
/Public:当前网站的公共目录,通常是 /Public/
/Tpl/Home/default/:项目的模板目录,通常是 /项目目录/Tpl/default/
:当前网站的地址(不含域名)
:当前项目的 URL 地址(不含域名)
-Article:当前模块的 URL 地址(不含域名)
-Article-index:当前操作的 URL 地址(不含域名)
/p-thinkphp_tpl_replace.shtml:当前的页面 URL
假定我们的网站为:www.5idev.com
定义项目文件为网站根目录下 Home 目录
当前模块为:Index
当前操作为:index
当前页面 URL 则为:http://www.5idev.com/index.php/Index/index
那么上述特殊字符在 index.html 模板中被解释为:
/Tpl/Home/default/Public:/Home/Tpl/default/Public/
/Public:/Public/
/Tpl/Home/default/:/Home/Tpl/default/
:网站根目录
:/index.php
-Article:/index.php/Index
-Article-index:/index.php/Index/index
/p-thinkphp_tpl_replace.shtml:/index.php/Index/index(页面实际地址)
模板替换补充说明
/Public:会定位于 DOCUMENT_ROOT 级别的根目录下。
:则与项目入口文件有关,不一定定位于 DOCUMENT_ROOT 下。
-Article-index:行为类似于 $_SERVER['REQUEST_URI'] ,当改写了访问 URL 时(如利用 .htaccess 文件),其结果与 /p-thinkphp_tpl_replace.shtml 不一致。
/p-thinkphp_tpl_replace.shtml:行为类似于 $_SERVER['PHP_SELF'] ,通常是实际页面地址。
以上特殊字符严格区分大小写,在实际应用中最好根据自己的项目部署情况经过具体测试后使用,以免产生不可预知的问题。
例子1,首页链接:
<a href="/" title="Web开发在线教程">首页</a>
例子2,加载公共目录 CSS 文件:
<load href='/Public/Css/default.css' />
例子3,提交表单数据:
<form action="-Article/insert" method="post">
自定义特殊替换字串
ThinkPHP 支持用户更改默认的替换规则甚至定义自己的模板替换特殊字符串。在项目配置文件中配置 TMPL_PARSE_STRING 选项以更改或增加模板替换字符串,如:
TMPL_PARSE_STRING => array( '/Public' => '/Common', // 更改默认的 /Public 替换规则 '__UPLOAD__' => '/Public/Uploads/', // 增加新的上传路径替换规则 )
作者:OK兄 浏览次数:148