1. 程式人生 > >smarty模板技術

smarty模板技術

~~ getc 語法 加載 編譯型 etc 模板文件 信息 常常

smarty簡介:

smarty是php領域流行的一種模板技術,免費,其核心就是一個類(smarty類)。

我們的主要目標就是學習怎麽使用這個類。

smarty的特點:

速度快(因為第二次執行的時候使用第一次執行時生成的編譯文件)

緩存技術(正是因為緩存技術,使得smarty模板技術不太適合那些對於實時性更新要求比較高的,比如股票信息)

插件技術(正是因為插件技術,使得smarty可以被擴展)

編譯型(訪問一個頁面一次之後會生成一個編譯文件,第二次再來訪問這個頁面的時候,就會訪問這個編譯文件,從而提高訪問速度);

$smarty->assign(‘變量名‘,數據)

smarty內部變量:

$smarty.now:獲取當前時間,是一個時間戳(整數)

$smarty.get:獲取到$_GET數據,$smarty.get.xx相當於$_GET[‘xx‘]

$smarty.post:獲取到$_POST數據, $smarty.post.xx相當於 $_POST[‘xx’]

$smarty.cookies:獲取到$_COOKIE數據, $smarty.cookies.xx相當於 $_COOKIE[‘xx’]

$smarty.session:獲取到$_SESSION數據, $smarty.session.xx相當於 $_SESSION[‘xx’]

$smarty.const: 獲取到php程序中的常量數據

$smarty.config:獲取到配置數據

內建函數:

就是寫在模板文件中,用於實現一定功能的smarty語句或語法。

模板文件中,有時候不是簡單的“輸出數據”,而可能還會需要一些其他的功能。內建函數就起這個作用。

跟前面的變量對比來說:

變量(數據)只是單純的輸出,

但:

內建函數並不是輸出數據,而是在模板中實現某種功能,

,比如:

載入配置文件,實現if判斷,實現循環邏輯。。。。

常用內置函數有:

{config_load}:載入配置文件。

{include}:載入(引入)其他模板文件到當前模板文件。

{if}:用於實現if語句。

{for}:用於實現循環。

{foreach}:用於對數組進行遍歷。

{while}:用於實現循環。

{literal}:用於標識一段代碼排除在smarty的處理邏輯中——即不被smarty處理!通常就是css代碼和js代碼中的大括號,跟smarty的大括號有沖突,用此來解決。

literal函數的使用:

對於解決smarty與跟css(和js)語法的可能沖突,還有一個方法:

修改smarty的“邊界符”;

$smarty->left_delimiter = “<{“;

$smarty->right_delimiter = “}>“;

則所有的模板中的smarty邊界符都要按上述來做,比如:

<{$v1}>

<{if $age > 18 }>

。。。。。

<{/if}>

自定義函數:

也是函數,只是不作為smarty裏模板文件中的核心函數,它常常用於構建並輸出一些html代碼內容。

smarty常量:

template_dir:表示“模板文件所在目錄”;

template_dir:表示“模板文件所在目錄;

left_delimiter:表示smarty語法的左邊界。

left_delimiter:表示smarty語法的左邊界。

smarty常用方法:

assign():變量賦值

display():加載模板

setTemplateDir():設置模板目錄

setCompileDir():設置編譯目錄

getTemplateDir():獲取模板目錄

getCompileDir():獲取編譯目錄

~~~~~~~~~~~~~~~

smarty模板技術