ThinkPHP 模板特殊字符串替换

作者 : MOOMOO 本文共1425个字,预计阅读时间需要4分钟 发布时间: 2022-05-2 共13人阅读

 

模板特殊字符串替换

ThinkPHP 系统定义了一些特殊的字符串(常量)以方便在模板中的使用,这些特殊字符串给模板的应用带来了极大的便利。

这些特殊的字符串是在进行模板输出之前有系统自动替换的,默认的模板特殊字符串如下:

  • ../Public:当前项目的公共模板目录,通常是 /项目目录/Tpl/default/Public/
  • __PUBLIC__:当前网站的公共目录,通常是 /Public/
  • __TMPL__:项目的模板目录,通常是 /项目目录/Tpl/default/
  • __ROOT__:当前网站的地址(不含域名)
  • __APP__:当前项目的 URL 地址(不含域名)
  • __URL__:当前模块的 URL 地址(不含域名)
  • __ACTION__:当前操作的 URL 地址(不含域名)
  • __SELF__:当前的页面 URL

假定我们的网站为:localhost

定义项目文件为网站根目录下 Home 目录

当前模块为:Index

当前操作为:index

当前页面 URL 则为:http://localhost/index.php/Index/index

那么上述特殊字符在 index.html 模板中被解释为:

  • ../Public:/Home/Tpl/default/Public/
  • __PUBLIC__:/Public/
  • __TMPL__:/Home/Tpl/default/
  • __ROOT__:网站根目录
  • __APP__:/index.php
  • __URL__:/index.php/Index
  • __ACTION__:/index.php/Index/index
  • __SELF__:/index.php/Index/index(页面实际地址)

模板替换补充说明

__PUBLIC__:会定位于 DOCUMENT_ROOT 级别的根目录下。

__ROOT__:则与项目入口文件有关,不一定定位于 DOCUMENT_ROOT 下。

__ACTION__:行为类似于 $_SERVER[‘REQUEST_URI’] ,当改写了访问 URL 时(如利用 .htaccess 文件),其结果与 __SELF__ 不一致。

__SELF__:行为类似于 $_SERVER[‘PHP_SELF’] ,通常是实际页面地址。

以上特殊字符严格区分大小写,在实际应用中最好根据自己的项目部署情况经过具体测试后使用,以免产生不可预知的问题。

例子1,首页链接:

<a href=https://www.moomoo.top/wangzhanjiaocheng/"__ROOT__/" title="Web开发在线教程">首页

例子2,加载公共目录 CSS 文件:

<load href=https://www.moomoo.top/wangzhanjiaocheng/'__PUBLIC__/Css/default.css' />

例子3,提交表单数据:

<form action="__URL__/insert" method="post">

自定义特殊替换字串

ThinkPHP 支持用户更改默认的替换规则甚至定义自己的模板替换特殊字符串。在项目配置文件中配置 TMPL_PARSE_STRING 选项以更改或增加模板替换字符串,如:

TMPL_PARSE_STRING => array(
  '__PUBLIC__' => '/Common',      // 更改默认的 __PUBLIC__ 替换规则
  '__UPLOAD__' => '/Public/Uploads/',  // 增加新的上传路径替换规则
)
1. 本站所有资源来源于用户上传和网络,仅作为演示数据,如有侵权请邮件联系站长!
2. 本站客服QQ:4387159,唯一购买官网:MooMoo.TOP!
3. 盗版,破解有损他人权益和违法作为,请各位会员支持正版!
MooMoo » ThinkPHP 模板特殊字符串替换

常见问题FAQ

是否支持共享资源赚外快?
本站支持任何人上传资源,一经采用即可展示,客户下单既有80%的提成。
可以免费教技术吗?
大家可以加群进行探讨共同进步,重点问题管理员会进行解答。
我是小白要怎么学习?
加群后做到不耻下问,看文章学习演示就能成为大佬。

发表评论