??????
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5SZn5WYy92Xvd2bs9Ve0JXYtN3LclHdyFWbT9CXQhEUvw1cldWYtlGavwlbj5idvdmL4VnbpxmL3d3dvw1LcpDc0RHaiojIsJye.gif)
??撘?憪??亥圻璅∠??撘????? PHP 霈曇恣撣?嚗??砍??Smarty ?塚??賭?閫?敺?敺??整???嗅?蝚???銋?銝?靘?憭?嚗?蝣圈?賭??Y1銝?銝???雿??臬???亙?典???? XOOPS ??蝔?摨??嗆???塚?撘?憪?????Smarty ?嗅?撟嗡??整???芾?撠? Smarty ?箇???蝏?憟踝??其??砍??其?撠勗歇蝏??詨?頞喳?鈭???敶??嗅?箇??賣??憟踝????Y??餈??嗅??其?撠曹??冽??鈭???
??????? 餈?蝭???蝡???銝餉??冽??撟園??閬?瘛勗?交?Z悄 Smarty ??雿輻?剁?餈??典??嫣蝙?刻秩??銝剝?賢歇蝏???敺?敺?摰??港???蝚???隞??冽迨??銝?銝?鈭??芸楛雿輻?其???敹?敺?嚗?霈拇?唾?鈭?閫?Smarty ?港?敺??園?刻???亦??????嚗??臭誑隞?銝剖??唬?鈭??舐內??撠勗??銝箄?蝭???蝡?????摰嫣??舫??撣豢楛?伐?隡?雿輻??Smarty ??????隞砍?航?賭?閫?敺?蝞???鈭??嫘??
??????? ?桀???祆??撌脩?蝚砌?甈∩耨霈V?嚗??祆?喳???銝?鈭???餈??伐?銝?餈?蝣?鈭??園?渡???喟頂嚗?敺?憭? Smarty ??餈??嗆??撌抒???撟嗆瓷????蝛嗅?敺???敶鳴???隞乩?銝??X?踹?箸?亦?啁?潘?雿?蝚????訾縑餈?蝭???蝡?摨?霂亥?賢?皛∟雲憭批??唳?喳郎銋? Smarty ????摮西??鈭???敶??嗆?祆????靚祈秤???唳?嫣?甈Z????伐?蝚???隡??其?銝?甈∠??靽株恥銝剜?湔迤????
Smarty隞?蝏?
隞?銋??舀芋??撘???
銝??仿??隞?隞?銋??嗅??撘?憪?嚗???鈭箏?憪?撖?HTML ??撋???Server Script 閫?敺?銝?憭芣說?????嗉??銝?霈箸?臬凝頧舐?? ASP ???臬??暹????? PHP嚗??賣?臬?鈭???撋? Server Script ??蝵?憿萎撩??蝡航祗閮?????甇支?撠望??鈭箸?喳?堆?憒????賣??蝔?摨?摨??券?餉? (??蝘啣??銝?摨??券?餉?) 銝?蝵?憿萄????(Layout) ?餉???蝳餌??霂?嚗??臭??臭?瘥?颲?憟賢?g?
?嗅?餈?銝芷?桅??拙停摮??典歇銋?嚗?隞?鈭支?撘?蝵?憿萄?憪?憌?銵??塚?銝?霈箸??ASP ????PHP ??雿輻?刻???賣?航澈?潛?摨?撘?????銝?閫?閫?霈曇恣撣?銝斤?頨思遢???舀?舫??撣貉?鈭?雿輻?刻??銝??舐?摨?撘箏停?舐?撌亙撩嚗?憒???閬?銝方?????嗅?潮▽嚗????臬?甇餅??銝?撠???蝏???...
??隞交芋??撘???撠勗?餈??????佗?璅∠??撘??????桃??嚗?撠望?航?颲曉?唬?餈唳???啁???餉???蝳餌?????賬??摰??質悟蝔?摨?撘?????銝?瘜其?韏??????批?嗆???臬???賜??颲暹??嚗???閫?閫?霈曇恣撣????臭?瘜其?蝵?憿菜????嚗?霈拍?憿萇??韏瑟?交?游?瑟??銝?銝???嚗???甇斗芋??撘???敺??????砍?貊??蝵?蝡?撘????a??雿輻?剁?雿踵?銝芯犖?質?賢???亙?嗡??選?
撠梁????亥圻餈???璅∠??撘????亥秩嚗?靘?韏??????唳?孵?憭扳?????嚗????剝??蝔?摨?憭?????璅∠??撘?????摰??函?望芋???祈澈?芾??喳???璅∠??撘???銝斤?敶W???
?券???剝??蝔?摨?憭?????璅∠??撘???銝哨?蝔?摨?撘?????敹?憿餉?韐?韐??????????圈?餉?嚗?銋?撠望?航秩隞?敹?憿餅??????????摰孵?刻??箏?唳芋??????憭???憟踝????賢?? assign ??撌乩????W?亥?霂湛?蝔?摨?撘?????餈??臬?憭???銝?鈭?蝔?摨??亙?喳????????啁??憌?鞎?????摰??函?望芋???祈澈?芾??喳???璅∠??撘???嚗?摰???霈詨?????湔??assign ?唳芋??銝哨?霈抵?閫?霈曇恣撣??刻挽霈⊥芋???嗅???喳?????閬?憒?雿????啜????甇文?撠勗?航?賭????虫?憟?撅?鈭??芸楛??璅∠??蝔?摨?霂剜? (憒? Smarty) 嚗?隞交?嫣噶?批?嗅?????????啜??雿?餈??瑚??伐?閫?閫?霈曇恣撣?銋?敺?摮虫?憒?雿?雿輻?冽芋??霂剛???
璅∠??撘?????餈?雿?????嚗?擐?????隞砍??????隞乩???餈?銵??橘?
?
銝??祉??璅∠??撘??? (憒? PHPLib) ?賣?臬?典遣蝡?璅∠??撖寡情?嗅??敺?閬?閫?????璅∠??嚗??嗅????????憟??亙??嚗???餈? parse() 餈?銝芣?寞??亥圾??璅∠??嚗???????撠?蝵?憿菔??箝??
撖?Smarty ??雿輻?刻???亥秩嚗?蝔?摨???銋?銝???閬???隞颱? parse ???其?鈭?嚗?餈?鈭? Smarty ?芸?其?撣格??隞砍??????銝?撌脩?蝻?霂?餈???蝵?憿蛛?憒???璅∠??瘝⊥?????函??霂?嚗? Smarty 撠梯?芸?刻歲餈?蝻?霂????其?嚗??湔?交?扯?蝻?霂?餈???蝵?憿蛛?隞亥????蝻?霂????園?氬??
雿輻?沒marty??銝?鈭?璁?敹??其??祆芋??撘???銝哨???隞砍虜???啣?箏????閫?敹蛛???靚??箏??憭扳??賭??踵??餈??瘀?
<!-- START : Block name -->
?箏????摰?<!-- END : Block name -->
餈?鈭??箏??憭折?其遢?賭???PHP 蝔?摨?銝凋誑 if ?? for, while ?交?批?嗅?隞祉???曄內?嗆??嚗??賜?嗆芋????韏瑟?亦?瘣?憭?鈭?嚗?雿??芾?銝??V??曄內?孵?銝?????璅∠??嚗? PHP 蝔?摨??踹?閬????嫣?甈∴?
??Smarty 銝哨?銝???隞亙????銝箔蜓嚗??????????圈?餉??質悟璅∠???芾??批?嗚????銝?Smarty 隡????芸楛??璅∠??霂剛?嚗???隞乩?蝞⊥?臬?箏???臬?西??曄內餈??航???憭?嚗??賣?舐??Smarty ??璅∠??霂剜? (if, foreach, section) ?剝????????摰嫣????啜??餈??瑚??交??閫?銝?憟質情璅∠????敺????孵???嚗?雿?憟賢??臬?芾?閫???敺?敶?嚗? PHP 蝔?摨?銝?銵??賭?敹??嫘??
?曹??Y??霂湔??嚗???隞砍?臭誑?仿??雿輻?沒marty 閬????∩?銝芸????嚗?撠?蝔?摨?摨??券?餉?銝?蝵?憿萄???圈?餉???蝖桀?啣??蝳颯??撠望?航秩 PHP 蝔?摨???銝?閬???憭芸??? HTML ????蝔?摨?銝剖?芾??喳?憟賡???????閬?憛??唳芋????嚗?霈拇芋???芸楛?喳?霂亙?雿????啗?鈭????? (???喃??箇?唬?銵?) ??
Smarty???箇?
摰?鋆?Smarty
擐???嚗???隞砍???喳?蝔?摨??曄蔭??雿?蝵柴??
Windows銝??航?賭?蝐颱撮餈??瑞??雿?蝵殷??? d:/appserv/web/demo/ ????
Linux銝??航?賭?蝐颱撮餈??瑞??雿?蝵殷??? /home/jaceju/public_html/ ????
?訕marty??摰??寧?蝡?銝?頧賣???啁??Smarty憟?隞塚?http://smarty.php.net??
閫?? Smarty 2.6.0 ??嚗?隡????啣?憭?獢??嚗??嗡葉??銝?libs 韏???憭嫘????libs 銝剖?霂乩??? 3 銝?class.php 瑼? + 1 銝?debug.tpl + 1 銝?plugin 韏???憭?+ 1 銝?core 韏???憭嫘???嗅???湔?亙? libs 憭??嗅?唳?函??蝔?摨?銝餉???憭嫣?嚗????游??銝?class 撠勗?臭誑鈭???撠梯??瘀?瘝⊿??嚗?餈?蝘?摰?鋆?瘜?瘥?颲?蝞???嚗?????銝??祆瓷???芸楛銝餅?箇??雿輻?刻????
?喃? Smarty 摰??寞????銝凋蛹隞?銋?閬?隞?蝏?銝?鈭?瘥?颲?憭?????摰?鋆??孵??g??箸?砌?靘??批??寧???孵?摰?鋆?嚗??臭誑?芸?其蜓?箏?鋆?銝?甈∴??嗅????靘?蝏?霂乩蜓?箔?????霈曇恣??撘???銝???蝔?摨??嗥?湔?亙??剁???銝?隡???憭?摰?鋆?憭芸??? Smarty 憭??研????蝚???????靘????孵????舫????閬???蝔?摨?撣西??亦宏餈??餌??蝔?摨?撘?????雿輻?剁?餈??瑚??函?行?潔蜓?箸??瘝⊥??摰?鋆? Smarty ??
蝔?摨???韏???憭寡挽摰?
隞亦????汾indows摰?鋆?Appserv銝箔?嚗?蝔?摨???銝餉???憭寞?胯??d:/appserv/web/demo/????摰?鋆?憟磅marty??嚗???隞砍?其蜓韏???憭嫣???撱箇?餈??瑞??韏???憭對?
?
??Linux 摨?銝?嚗?霂瑁扇敺?撠? templates_c ?????????港蛹 777 ??Windows 銝???撠??嗅?芾粉??瘨???
蝚砌?銝芰?沒marty????撠?蝔?摨?
??隞砍??霈曉? Smarty ??頝臬?嚗?霂瑕?隞乩?餈?銝芣﹝獢??賢??銝?main.php 嚗?撟嗆?曄蔭?唬蜓韏???憭嫣?嚗?
main.php:
<?php
include "class/Smarty.class.php";
define('__SITE_ROOT', 'd:/appserv/web/demo'); // ????瘝⊥????蝥?$tpl = new Smarty();
$tpl->template_dir = __SITE_ROOT . "/templates/";
$tpl->compile_dir = __SITE_ROOT . "/templates_c/";
$tpl->config_dir = __SITE_ROOT . "/configs/";
$tpl->cache_dir = __SITE_ROOT . "/cache/";
$tpl->left_delimiter = '<{';
$tpl->right_delimiter = '}>';
?>
?找??X?孵?霈曉????冽???其?嚗?蝔?摨?憒???閬?蝘餅??啣?嗅??唳?對??芾???__SITE_ROOT 撠勗?臭誑?艾?? (餈????臬???? XOOPS ?? )
Smarty ??璅∠??頝臬?霈曉?憟賢??嚗?蝔?摨?隡?靘??扯?銝芾楝敺??交??????璅∠?????詨笆雿?蝵?(??靘?銝剜??'d:/appserv/web/demo/templates/' ) ???嗅????隞祉??display() 餈?銝?Smarty ?寞??交?曄內??隞祉??璅∠????
?乩??交??隞砍??templates 韏???憭嫣??曄蔭銝?銝?test.htm嚗?(?拙????思?銋??賣????靚?嚗?雿?靘蹂?閫?閫?霈曇恣撣?撘???嚗?蝚????質??臭誑 .htm 銝箔蜓??)
templates/test.htm:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title><{$title}></title>
</head>
<body>
<{$content}>
</body>
</html>
?啣?冽??隞祈?撠?銝??Y??璅∠???曄內?箸?伐?撟嗅?蝵?憿菜??憸? ($title) 銝???摰?($content) ?湔?g?霂瑕?隞乩?獢????摰孵?賢??銝?test.php 嚗?撟嗆?曄蔭?其蜓韏???憭嫣?嚗?
test.php:
<?php
require "main.php";
$tpl->assign("title", "瘚?霂??函??蝵?憿菜??憸?");
$tpl->assign("content", "瘚?霂??函??蝵?憿萄??摰?);
// 銝??V舅銵?銋??臭誑?刻?銵?隞???// $tpl->assign(array("title" => "瘚?霂??函??蝵?憿菜??憸?", "content" => "瘚?霂??函??蝵?憿萄??摰?));
$tpl->display('test.htm');
?>
霂瑟??撘?瘚?閫??剁?颲???http://localhost/demo/test.php 霂?霂???(靘??函???臬??喳?蝵???)嚗?摨?霂乩????唬誑銝????駁?g?
????templates_c 摨?銝?嚗???隞砌????唬?銝芸??芰??韏???憭?(%%179) 嚗????寥??銝??颱??臭?銝芸??芰??韏???憭?(%%1798044067) 嚗????嗡葉??銝?銝芣﹝獢?嚗?
templates_c/%%179/%%1798044067/test.htm.php:
<?php ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title><?php echo $this->_tpl_vars['title']; ?></title>
</head>
<body>
<?php echo $this->_tpl_vars['content']; ?>
</body>
</html>
瘝⊿??嚗?餈?撠望??Smarty 蝻?霂?餈???獢????摰?撠???隞砍?冽芋??銝剔??????頧祆?X??鈭? PHP ??霂剜??交?扯?嚗?銝?甈∪??霂餃?????瑞????摰寞?塚? Smarty 撠曹??湔?交????餈?銝芣﹝獢??交?扯?鈭???
??????隞祆?渡??銝?銝??港葵 Smarty 蝔?摨??啣??甇仿炊嚗?
Step 1. ??頧?Smarty 璅∠??撘?????
Step 2. 撱箇? Smarty 撖寡情??
Step 3. 霈曉? Smarty 撖寡情?????啜??
Step 4. ?函?摨?銝剖?????????嚗?????Smarty ?? assign ?寞?撠?????蝵桀?交芋??????
Step 5. ?拍??Smarty ?? display ?寞?撠?蝵?憿萇??箝??
憒?雿?摰???雿???蝔?摨??嗆??
銝??X??隞祉???圈?支? Smarty ????閬???韏???憭孵? (class ?? configs ?? templates ?? templates_c) 嚗?餈???銝支葵韏???憭對? includes ?? modules ???嗅?餈??舐???璅∩遛 XOOPS ???嗆????撱箇??箸?亦??嚗???銝?XOOPS ?舐??????亥圻?啁??蝔?摨?銝哨?撠??唬蝙??Smarty 璅∠??撘??????嗥?蝔?摨?????靚?镼輻????憭扯器嚗?蝚???餈??瑞??蝔?摨??嗆???賣瓷?? XOOPS ???曉??銋?銝?撘綽?雿??喳?蝏?鈭箇???嗉??? XOOPS ???啜??
includes 餈?銝芾???憭嫣蜓閬??舐?冽?交?曄蔭銝?鈭? function ?? sql 瑼?嚗?餈??瑕??main.php 撠勗?臭誑撠?摰?隞砍??乩?嚗?憒?銝?嚗?
main.php:
<?php
include "class/Smarty.class.php";
define('__SITE_ROOT', 'd:/appserv/web/demo'); // ????瘝⊥????蝥?// 隞?main.php ??雿?蝵桐蛹?箏??
require_once "includes/functions.php";
require_once "includes/include.php";
$tpl = new Smarty();
$tpl->template_dir = __SITE_ROOT . "/templates/";
$tpl->compile_dir = __SITE_ROOT . "/templates_c/";
$tpl->config_dir = __SITE_ROOT . "/configs/";
$tpl->cache_dir = __SITE_ROOT . "/cache/";
$tpl->left_delimiter = '<{';
$tpl->right_delimiter = '}>';
?>
modules 餈?銝芾???憭孵???舐?冽?交?曄蔭蝔?摨?璅∪????嚗?憒?甇支??乩噶銝?隡???蝔?摨?銝W??啣??賣?荔??港??嗆??銝??桐??嗚??
銝??X??隞砌?????main.php 嚗?餈??舀?港葵蝔?摨???銝餉??詨?嚗?銝?霈箸?臬虜?啣?銋???憭??函?摨???頧賬???曹澈????撱箇?蝑?嚗??賣?臬?刻???撘?憪???????隞乩?????璅∪???賢?芾?撠?餈?銝芣﹝獢????怨??亙停?臭誑?艾????甇文?函?摨?瘚?蝔?閫??????湛?撠勗?憿餃末憟賣???? main.php 銝剖?霂亥??暸???銝?镼選?敶??嗅?拍??include ?? require ??隞歹???瘥?銝芰?航??皜?璆???蝳餅?臬??憟賭?餈?鈭???
?
?其??????啁?? Smarty 蝔?摨? 5 甇仿炊嚗? main.php 撠曹?撣格??隞砍??撠??? 3 銝芣郊撉文??憟踝????Y??璅∪??蝔?摨??芾??????V舅銝芣郊撉文停?臭誑鈭???
隞?????撘?憪?
憒?雿?雿輻?典????
隞?銝?銝?蝡???靘?銝哨???隞砍?臭誑皜?璆??啁???唳??隞砍?拍??<{ ?? }> 餈?銝支葵??蝷箇泵?瑕???????韏瑟?乓??憸?霈曄????蝷箇泵?瑚蛹 { ?? } 嚗?雿?銝箔?銝剜???脩???? Javascript ???喟頂嚗???甇斤???餈??舀芋隞?XOOPS 嚗?撠???蝷箇泵?瑟?X???????????賢???孵??? PHP ???????賢???孵??臭?璅∩??瑞??嚗????V???銝?$ 摮???(餈???銝??祉??璅∠??撘???銝???)????蝷箇泵?瑕停???孵????PHP 銝剔?? <?php ?? ?> (鈭?摰?銝?摰?隞祉??蝖桐?鋡急?踵?X??餈?銝? 嚗???隞乩誑銝???璅∠????????瘜??賣?臬?航???嚗?
1. <{$var}>
2. <{ $var }> <!-- ??????銋??湔??蝛箸??-->
3. <{$var
}> <!-- ?臬?????蝷箇泵?瑕??蝏???????蝷箇泵?瑚??典??銝?銵? -->
??Smarty ??嚗?????憸?霈暹?臬?典????嚗?銋?撠望?航秩雿??芾???摰?銝?甈∪停憟賭?????摰?銝斗活隞乩???霂?嚗???????摰嫣?隞交??????摰???銝箔蜓??撠梁???隞砍?其蜓璅∠??銝剖??頧賭?憭??函??摮?璅∠??嚗?摮?璅∠??銝剖???瑞??????銝??瑚?隡?鋡急?蹂誨嚗?餈??瑟??隞砍停銝??典????撖孵?璅∠??????銝?甈∟圾?????其???
????PHP 蝔?摨?銝哨???隞祉??Smarty ?? assign ?亙?????蝵格?曉?唳芋??銝准?? assign ???冽?摰??寞????銝剖歇蝏???敺?敺?憭?鈭?嚗??冽?撠勗???銝?銝???????靘???蝷箝??銝?餈??券??憭??箏???塚???隞砍停敹?憿餃???????銝?鈭???????嚗????賢????? assign ?唳芋??銝哨?餈??其?銝?蝡???????
靽桅弘雿???????
銝??X??隞祆????Smarty ???????啁??憌?鞎??舐?望芋???芾??喳???嚗???隞?Smarty ??靘?鈭?霈詨?靽桅弘???????賢???雿輻?函???寞?憒?銝?嚗?
<{????|靽桅弘?賢?}> <!-- 敶?靽桅弘?賢?瘝⊥?????唳??-->
<{????|靽桅弘?賢?:"??????敹?閬?嚗?閫??賢???摰?)"}> <!-- 敶?靽桅弘?賢??????唳??-->
??靘?憒?銝?嚗?
<{$var|nl2br}> <!-- 撠?????銝剔???Z?摮?蝚行?X?? <br /> -->
<{$var|string_format:"%02d"}> <!-- 撠??????澆??? -->
憟踝???蛹隞?銋?閬?霈拇芋???芾??喳????????啁??憌?鞎?嚗???????摨?銝??? HTML 嚗?餈??舀??銝芾揚?抵膠蝏?撣????其遢?駁?U??
<input name="total" type="hidden" value="21000" />
?駁??憸?嚗?21,000 ??
銝??祆芋??撘?????璅∠???航?賭?餈??瑕??嚗?
<input name="total" type="hidden" value="{total}" />
?駁??憸?嚗?{format_total} ??
摰?隞祉?? PHP 蝔?摨?銝剛?餈??瑕??嚗?
<?php
$total = 21000;
$tpl->assign("total", $total);
$tpl->assign("format_total", number_format($total));
?>
?? Smarty ??璅∠??撠勗?臭誑餈??瑕??嚗? (number_format 靽桅弘?賢?霂瑕?訕marty 摰??寧?憿萎?頧?
<input name="total" type="hidden" value="<{$total}>" />
?駁??憸?嚗?<{$total|number_format:""}> ??
Smarty ?? PHP 蝔?摨?銝剖?芾?餈??瑕??嚗?
<?php
$total = 21000;
$tpl->assign("total", $total);
?>
??隞亙??Smarty 銝剜??隞砍?芾???摰?銝?甈∪????嚗??拐???鈭斤?璅∠???芾??喳??喳?胯??餈??瑚?閫????嚗?餈?撠望?航悟璅∠???芾??喳????????圈?鞎???憟賢?嚗?
?批?嗆芋??????摰?
??憭????箏??
??Smarty ?瑟?蹂葉嚗???隞祈???憭?銝?銝芸?箏????銝斤??孵?嚗? foreach ?? section ?????函?摨?銝剜??隞砍??閬? assign 銝?銝芣?啁?嚗?餈?銝芣?啁?銝剖?臭誑???急?啁??啁???撠勗??銝??Z?銝芯?摮?嚗?
擐?????隞祆?亦?? PHP 蝔?摨??臬?雿?????嚗?
test2.php:
<?php
require "main.php";
$array1 = array(1 => "?寞??", 2 => "????", 3 => "擐???", 4 => "?凋?");
$tpl->assign("array1", $array1);
$array2 = array(
array("index1" => "data1-1", "index2" => "data1-2", "index3" => "data1-3"),
array("index1" => "data2-1", "index2" => "data2-2", "index3" => "data2-3"),
array("index1" => "data3-1", "index2" => "data3-2", "index3" => "data3-3"),
array("index1" => "data4-1", "index2" => "data4-2", "index3" => "data4-3"),
array("index1" => "data5-1", "index2" => "data5-2", "index3" => "data5-3"));
$tpl->assign("array2", $array2);
$tpl->display("test2.htm");
?>
??璅∠??????瘜?憒?銝?嚗?
templates/test2.htm:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>瘚?霂???憭??箏??</title>
</head>
<body>
<pre>
?拍??foreach ?亙????array1
<{foreach item=item1 from=$array1}>
<{$item1}>
<{/foreach}>
?拍??section ?亙????array1
<{section name=sec1 loop=$array1}>
<{$array1[sec1]}>
<{/section}>
?拍??foreach ?亙????array2
<{foreach item=index2 from=$array2}>
<{foreach key=key2 item=item2 from=$index2}>
<{$key2}>: <{$item2}>
<{/foreach}>
<{/foreach}>
?拍??section ?亙????array1
<{section name=sec2 loop=$array2}>
index1: <{$array2[sec2].index1}>
index2: <{$array2[sec2].index2}>
index3: <{$array2[sec2].index3}>
<{/section}>
</pre>
</body>
</html>
?扯?銝?靘???嚗???隞砍???唬?蝞⊥??foreach ?? section 銝支葵?扯?蝏????臭??瑞???????銝方???啣???雿?銝????g?
蝚砌?銝芸榆?怠????橘?撠望?病oreach 閬?隞亙楷?嗅??????孵??亙???唳??隞祆?? assign ??銝文??啁?????嚗??? section ??隞乓??銝餅?啁?[敺芰?臬??蝘財.摮??啁?蝝W????喳?臬??港葵?啁????啣?箸?乓???望迨?舐?伐? Smarty ?冽芋??銝剔?? foreach ?? PHP 銝剔?? foreach ?臭??瑞??嚗??? section ????Smarty 銝箔?憭???憒?銝??????啁?????????撅??箸?亦????餈啜??敶???section ?????質?銝??芸?甇歹??支?銝?銝?????靚??啁??撌Y?嗉??????啣?嚗?摰??寞????銝凋???靘?鈭?憟賢??銝?section ??摨??刻??靘???
銝?餈?閬?瘜冽?????荔?銝Y? section ???啁?蝝W?敹?憿餅?臭? 0 撘?憪???甇??湔?堆???0, 1, 2, 3, ...??憒????函???啁?蝝W?銝??臭? 0 撘?憪???甇??湔?堆????撠勗??寧??foreach ?亙???唳?函??韏??????典?臭誑????摰??寡悄霈箏?箔葉??甇斤?霈刻捏嚗??嗡葉?Z悄鈭? section ?? foreach ???冽???
撌Y?嗉?????????
璅∠??撘???????隞支犖隡方??蝑???憭扳?撠望?臬楷?嗉????????啣?改?霈詨???????璅∠??撘????賭??寞??撘箄?餈??對?銝?餈?餈?撖?Smarty ?亥秩?湔?臬??輻???
??撣貉??啁??撌Y?嗉???嚗?撠梁?霈箄?蝔?摨?銝剔??霈刻捏銝駁??箏?扼????霈曇????啁??蝏???憒?銝?嚗?
?砍????
蝡??∪?砍??
??摮虫???
憟賭髡隞?蝏?
憟????梯?
霈∠??箔???
蝖砌辣憭???
頧臭辣霈刻捏
蝔?摨?銝剜??隞砍??隞仿????韏???銝箔?嚗?
test3.php:
<?php
require "main.php";
$forum = array(
array("category_id" => 1, "category_name" => "?砍????,
"topic" => array(
array("topic_id" => 1, "topic_name" => "蝡??∪?砍??")
)
),
array("category_id" => 2, "category_name" => "??摮虫???,
"topic" => array(
array("topic_id" => 2, "topic_name" => "憟賭髡隞?蝏?"),
array("topic_id" => 3, "topic_name" => "憟????梯?")
)
),
array("category_id" => 3, "category_name" => "霈∠??箔???,
"topic" => array(
array("topic_id" => 4, "topic_name" => "蝖砌辣憭???),
array("topic_id" => 5, "topic_name" => "頧臭辣霈刻捏")
)
)
);
$tpl->assign("forum", $forum);
$tpl->display("test3.htm");
?>
璅∠??????瘜?憒?銝?嚗?
templates/test3.htm:
<html>
<head>
<title>撌Y?嗅儐?舀?霂?</title>
</head>
<body>
<table width="200" align="center" cellpadding="3" cellspacing="0">
<{section name=sec1 loop=$forum}>
<tr>
<td colspan="2"><{$forum[sec1].category_name}></td>
</tr>
<{section name=sec2 loop=$forum[sec1].topic}>
<tr>
<td width="25"> </td>
<td width="164"><{$forum[sec1].topic[sec2].topic_name}></td>
</tr>
<{/section}>
<{/section}>
</table>
</body>
</html>
?扯???蝏???撠勗??蝚???銝曄??靘?摮?銝??瑯??
??甇文?g??函?摨?銝剜??隞砍?芾??喳??瘜?????閬???憭??潔?撅?銝?撅???憛??唳?啁?銝哨????拍??<{蝚砌?撅??啁?[敺芰??].蝚砌?撅??啁?[敺芰??].蝚砌?撅??啁?[敺芰??]. ... .?啁?蝝W?}> 餈??瑞???孵??交?曄內瘥?銝?銝芸楷?嗅儐?臭葉???潦???喃??其?銋??寞??g?銝?銝???雿輻?冽?唳?桀??嗆??隞砍??????
頧祆?X?唳?桀?銝剔??韏???
銝??X???啣?雿??曄內撌Y?嗅儐?荔???摰???銝?摨??冽?嗆??隞祉??韏????航?賣?臭??唳?桀?銝剜?????箸?亦??嚗???隞交??隞砍停敺??喳??瘜????唳?桀???韏???????銝?餈啁??憭????啁???敶W???餈???蝚????其?銝?DB 蝐餃?急?交?????唳?桀?銝剔??韏???嚗??典?臭誑?芾??冽?典??甈Y???寞???
??隞砍?芯耨??PHP 蝔?摨?嚗?璅∠??餈??臭??a??葵 (餈?撠望?舀芋??撘?????憟賢?~)嚗??嗡葉 $db 餈?銝芸笆鞊∪??霈曉歇蝏???main.php 銝剖遣蝡?憟賭?嚗???銝????箸?亦??韏???撠望?臭??Y??靘?摮???
test3.php:
<?php
require "main.php";
// ??撱箇?蝚砌?撅??啁?
$category = array();
$db->setSQL($SQL1, 'CATEGORY');
if (!$db->query('CATEGORY')) die($db->error());
// ????蝚砌?撅?敺芰?舐??韏???
while ($item_category = $db->fetchAssoc('CATEGORY'))
{
// 撱箇?蝚砌?撅??啁?
$topic = array();
$db->setSQL(sprintf($SQL2, $item_category['category_id']), 'TOPIC');
if (!$db->query('TOPIC')) die($db->error());
// ????蝚砌?撅?敺芰?舐??韏???
while ($item_topic = $db->fetchAssoc('TOPIC'))
{
// ?????????唳?格?典?亦洵鈭?撅??啁?銝?array_push($topic, $item_topic);
}
// ??蝚砌?撅??啁???摰?銝箇洵銝?撅??啁??????????唳?桐葉??銝?銝芣????
$item_category['topic'] = $topic;
// ??蝚砌?撅??唳?格?典?亦洵銝?撅??啁?銝?array_push($category, $item_category);
}
$tpl->assign("forum", $category);
$tpl->display("test3.htm");
?>
?冽?唳?桀?????銝?蝚?韏?????嚗???隞砍??啁???臭?銝芸???怨砲蝚??唳?桃???啁?????餈? while ??餈啣?? array_push ?賢?嚗???隞砍??唳?桀?銝剔??韏???銝?蝚?銝?蝚?憛??唳?啁?????憒????典?芰?典?啣??撅?敺芰?荔?撠望??蝚砌?撅?敺芰??(蝥Z?脩???其遢) ?餅???喳?胯??
?喳???摰寞?臬?行?曄內
閬??喳??臬?行?曄內??摰對???隞砍?臭誑雿輻??if 餈?銝芾祗瘜??亙?????押??靘?憒?憒???雿輻?刻??撌脩??餃?亦??霂?嚗???隞祉??璅∠??撠勗?臭誑餈??瑕??嚗?
<{if $is_login == true}>
?曄內雿輻?刻????雿?????
<{else}>
?曄內颲??亙??瑕??撖?????蝒?雿?
<{/if}>
閬?瘜冽?????荔???==???瑚舅颲嫣?摰?閬??????喳?銝?銝芰征?潛泵嚗??血?? Smarty 隡???瘜?閫?????
if 霂剜?銝??祉??摨??典?臭誑???批??嫣蝙?刻秩??嚗???隞亦????刻???撠曹?霂血??隞?蝏?鈭???銝?餈?蝚??????唬?銝?銝芣??頞???摨??剁?撣詨虜隡????啁?摨???閬?鈭抒??餈??瑞??銝?銝芾”?潘? (?啣?隞?”???航???????憿箏?)
1 2
3 4
5 6
7 8
餈?銝芰???蝘唬?銝箝??璅芸????憭?銵冽?潦????摰????寡?脣??隡?蝏???蝥萄????憭?銝???嚗?????????隞祉???啁????憭?銵冽?潮?賣?臭?銝???銝?嚗?銝????芣??銝?蝚?韏???????璅芸????憭?銵冽?澆???臭誑璅芸???啣?其???銝凋漣?? n 蝚?韏?????嚗????V?銝???嚗??游?唳?港葵敺芰?舐?????閬?颲曉?啗??瑞?????踝???蝞??????孵??芷??閬? section ?? if ?剝???喳?胯??
??隞祆?亦????銝??Z?銝芯?摮?嚗?
test4.php:
<?php
require "main.php";
$my_array = array(
array("value" => "0"),
array("value" => "1"),
array("value" => "2"),
array("value" => "3"),
array("value" => "4"),
array("value" => "5"),
array("value" => "6"),
array("value" => "7"),
array("value" => "8"),
array("value" => "9"));
$tpl->assign("my_array", $my_array);
$tpl->display('test4.htm');
?>
璅∠??????瘜?憒?銝?嚗?
templates/test4.htm:
<html>
<head>
<title>璅芸????憭?銵冽?潭?霂?</title>
</head>
<body>
<table width="500" cellspacing="0" cellpadding="3">
<tr>
<{section name=sec1 loop=$my_array}>
<td><{$my_array[sec1].value}></td>
<{if $smarty.section.sec1.rownum is div by 2}>
</tr>
<tr>
<{/if}>
<{/section}>
</tr>
</table>
</body>
</html>
???孵?其? $smarty.section.sec1.rownum 餈?銝?Smarty ????嚗???section 敺芰?臭葉餈?銝芸????隡???敺?隞? 1 撘?憪???蝝W??潘???隞亙? rownum ?質◤ 2 ?文偷?塚?撠梯???</tr><tr> 雿輯”?潭?W?? (瘜冽??嚗???</tr> ?典????lt;tr> ?典???? ????甇斗?啣? 2 撠望?舀??隞砍?其???銝剜?唾????啁??韏???蝚??啜????雿??臭誑?望迨?餃?????嗅?銝????????唳?孵???
??頧賢??典??摰?
??隞砍?臭誑?冽芋??????頧?PHP 蝔?摨?隞??????臬?虫?銝芸?璅∠??嚗????急?臭蝙??include_php ?? include 餈?銝支葵 Smarty 璅∠??霂剜?嚗? include_php 蝚???颲?撠??剁?雿輻?冽?孵??臭誑?亥砭摰??寞????嚗?餈???銝?????餈啜??
?其蝙??include ?塚???隞砍?臭誑憸?????頧賢?璅∠??嚗????臬?冽????頧賢?璅∠????憸?????頧賡??撣訾蝙?典?冽???勗??????隞嗆??憭游??????摰???嚗????冽????頧賢???臭誑?典?函?銝???獢??園△嚗???餈?銝?甇亥噢?啣? Winamp ?砍?舀??Skin ??敶??嗉?銝斤???隞砌??臭誑瘛瑞?剁?閫??嗅?菔??摰???
??隞祆?亦????銝??Z?銝芯?摮?嚗?
test5.php:
<?php
require "main.php";
$tpl->assign("title", "Include 瘚?霂?");
$tpl->assign("content", "餈??舀芋?? 2 銝剔??????");
$tpl->assign("dyn_page", "test5_3.htm");
$tpl->display('test5_1.htm');
?>
璅∠?? 1 ????瘜?憒?銝?嚗?
templates/test5_1.htm:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title><{$title}></title>
</head>
<body>
<{include file="test5_2.htm"}><br />
<{include file=$dyn_page}>
<{include file="test5_4.htm" custom_var="?芾恥????????摰?}>
</body>
</html>
璅∠?? 2 ????瘜?憒?銝?嚗?
templates/test5_2.htm:
<{$content}>
璅∠?? 3 ????瘜?憒?銝?嚗?
templates/test5_3.htm:
餈??舀芋?? 3 ????摰?
璅∠?? 4 ????瘜?憒?銝?嚗?
templates/test5_4.htm:
<{$custom_var}>
餈???瘜冽????銝芷???對?1. 璅∠????雿?蝵桅?賣?臭誑????摰?銋??? template_dir 銝箏?箏??嚗?2. ???? include 餈??亦??摮?璅∠??銝哨??嗅????銋?隡?鋡怨圾霂???嚗?3. include 銝剖?臭誑?具????????蝘???????摰嫘???交??摰?撘??怨??亦??璅∠??銝剜?????怎??????嚗?憒???銝??X芋?? 4 ????瘜???