簡(jiǎn)單了解 smarty語(yǔ)法

最近投靠了一家新公司,前后端不分離,某端的頁(yè)面寫(xiě)法有用到smarty,簡(jiǎn)單了解下smarty語(yǔ)法
1.smarty的配置
首先,使用smarty第一件事是先配置好,一般有以下9行代碼

require_once("smarty/libs/Smarty_class.php"); //把smarty的類定義文件包含進(jìn)來(lái)
$smarty=new smarty();
$smarty->config_dir="smarty/libs/Config_File.class.php";
$smarty->caching=false; //是否使用緩存,項(xiàng)目在調(diào)試期間,不建議啟用緩存
$smarty->cache_dir="smarty_cache/"; //緩存文件夾
$smarty->template_dir="smarty_tpl"; //模板文件夾
$smarty->compile_dir="smarty_compile"; //編譯文件夾
$smarty->left_delimiter="<{"; // 標(biāo)簽符定義不是必要的,smarty默認(rèn)是使用"<"和">",強(qiáng)烈建議更換。
//因?yàn)槿绻鹲marty的標(biāo)簽剛好在javascript語(yǔ)句里面時(shí),沖突的可能性很大
$smarty->right_delimiter="}>";

以上的9行代碼可以放在一個(gè)獨(dú)立的文件,需要使用smarty的頁(yè)面引用進(jìn)來(lái)即可

  1. smarty的使用
    smarty替換標(biāo)簽的語(yǔ)法:
    smarty->assign("標(biāo)簽名","值");
    smarty->display("index.html"); //顯示內(nèi)容,index為模板文件名

假定模板文件里面有一個(gè)標(biāo)簽 <{ $user_name }> (注意:標(biāo)簽里面的變量必須帶$)
那么在PHP文件可以:
$new_name="Joan";
smarty->assign("user_name",$new_name); (注意:在此時(shí),user_name是不帶$的)
smarty->display("index.html"); //顯示內(nèi)容,index為模板文件名

  1. smarty的循環(huán)
    循環(huán)的使用在php文件像處理普通標(biāo)簽一樣處理

模板文件代碼:

<{section name=s loop=$stu}>

<{/section}>

<{$stu[s]}>

那么在PHP文件可以:
假如有一個(gè)數(shù)組,或一個(gè)記錄集 $rs
$smarty->assign("stu",$rs);
$smarty->display("index.html"); //在PHP文件處理循環(huán)標(biāo)簽和普通標(biāo)簽沒(méi)什么區(qū)別。

  1. smarty的if 語(yǔ)法
    模板文件
    <{if $my_r>500 }>
    <{$my_r}>
    <{/if}>

php文件:

$aa=123;
$smarty->assign("my_r",$aa);
$smarty->display("in.html");
上例中,如果$aa>500,my_r的標(biāo)簽就能顯示出來(lái),否則不顯示。
<{ if 條件 }> //此處的條件不要加括號(hào),也不要像basic語(yǔ)言那樣在后面加 then

<{/if}>

  1. smarty循環(huán)配合if 使用實(shí)例

PHP文件
----------------------------------
$aa[0]=123;
$aa[1]=456;
$aa[2]=789;
$smarty->assign("my_r",$aa);
$smarty->display("in.html");

模板文件

<{ section name=s loop=$my_r }>
<{if $my_r[s]>200 }>
<{$my_r[s]}>
<{else}>
小于200
<{/if}>

<{/section}>

上例中,只顯示大于200的數(shù)值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • ecshop2.7.3的入口文件“index.php”的詳細(xì)分析 //定義常量,防止被引用文件的非法載入 defi...
    月下茶葉閱讀 1,499評(píng)論 0 4
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,993評(píng)論 19 139
  • FreeMarker的模板文件并不比HTML頁(yè)面復(fù)雜多少,FreeMarker模板文件主要由如下4個(gè)部分組成: 1...
    年輕小伙程序員閱讀 3,067評(píng)論 0 5
  • 前幾天看到一個(gè)關(guān)于面相的說(shuō)法:小耳朵的人喜歡暗戀,不知道自己要什么,該不該追,先暗戀著再說(shuō)。 確實(shí)有暗戀的人。 有...
    下戶彩閱讀 311評(píng)論 1 0
  • 關(guān)于這個(gè)話題,貓黍就不像以前老是講內(nèi)在和精神的力量了。 今天只講女人的外在。 有一次我在成都坐地鐵的時(shí)候,在地鐵排...
    貓黍閱讀 871評(píng)論 1 12