ThinkPHP 模板魔術常量


模板特殊字符串替換

ThinkPHP 系統定義了一些特殊的字符串(常量)以方便在模板中的使用,這些特殊字符串給模板的應用帶來了極大的便利。php

這些特殊的字符串是在進行模板輸出以前有系統自動替換的,默認的模板特殊字符串以下:css

  • ../Public:當前項目的公共模板目錄,一般是 /項目目錄/Tpl/default/Public/
  • __PUBLIC__:當前網站的公共目錄,一般是 /Public/
  • __TMPL__:項目的模板目錄,一般是 /項目目錄/Tpl/default/
  • __ROOT__:當前網站的地址(不含域名)
  • __APP__:當前項目的 URL 地址(不含域名)
  • __URL__:當前模塊的 URL 地址(不含域名)
  • __ACTION__:當前操做的 URL 地址(不含域名)
  • __SELF__:當前的頁面 URL

假定咱們的網站爲:www.5idev.comhtml

定義項目文件爲網站根目錄下 Home 目錄thinkphp

當前模塊爲:Indexide

當前操做爲:indexpost

當前頁面 URL 則爲:http://www.5idev.com/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 級別的根目錄下。code

__ROOT__:則與項目入口文件有關,不必定定位於 DOCUMENT_ROOT 下。orm

__ACTION__:行爲相似於 $_SERVER['REQUEST_URI'] ,當改寫了訪問 URL 時(如利用 .htaccess 文件),其結果與 __SELF__ 不一致。

__SELF__:行爲相似於 $_SERVER['PHP_SELF'] ,一般是實際頁面地址。

以上特殊字符嚴格區分大小寫,在實際應用中最好根據本身的項目部署狀況通過具體測試後使用,以避免產生不可預知的問題。

例子1,首頁連接:

<a href="__ROOT__/" title="Web開發在線教程">首頁</a>

例子2,加載公共目錄 CSS 文件:

<load href='__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/',    // 增長新的上傳路徑替換規則
)

參考閱讀

ThinkPHP 系統配置

相關文章
相關標籤/搜索