在Smarty 中,有一些保留變量,它們是不需要PHP 腳本去分配就可以直接使用,即不用使用$_tpl->assign('var','value') 去分配。
1、在模板中訪問頁面請求的變量
{$smarty.get.user} == $_GET['user']
{$smarty.post.user} == $_POST['user']
{$smarty.cookie.username} == $_COOKIE['username']
{$smarty.session.username} == $_SESSION['username']
{$smarty.server.REMOTE_ADDR} == $_SERVER["REMOTE_ADDR"]
{$smarty.env.PATH} == $_ENV['PATH']
{$smarty.request.username} == $_REQUEST['username']
2、在模板文件中訪問PHP 腳本中定義的常量和系統常量
{$smarty.const.__FILE__} 當前執行的PHP 文件
{$smarty.const.CONST_VAR} 訪問PHP 腳本中define 定義的常量
3、在模板文件中獲取當前服務器的時間
{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"} == PHP腳本中的date('Y-m-d H:i:s',time())
4、配置文件在模板中的訪問
可以通過{$smarty.config.配置變量} 來訪問配置文件中的模板變量。這樣的話,在模板中訪問配置文件中的變量就有兩種方法:一、{#配置變量#};二、{$smarty.config.配置變量},如果有區域的話,也是如此。
5、獲取Smarty 內建函數capture 捕獲的數據
capture函數的作用是捕獲模板輸出的數據並將其存儲到一個變量裡,而不是把它們輸出到頁面,任何在{capture name="foo"}和{/capture}之間的數據將被存儲到變量$foo中,該變量由name屬性指定。在模板中通過$smarty.capture.foo 訪問該變量,如果沒有指定name 屬性,函數默認將使用"default" 作為參數