¿¿¿¿!!     ¿¿¿ - ¿¿¿¿
   
Smarty ¤Jªù
§Ç¨¥

­è¶}©l±µÄ²¼Ëª©¤ÞÀºªº PHP ³]­p®v¡AÅ¥¨ì Smarty ®É¡A³£·|ı±o«ÜÃø¡C¨ä¹êµ§ªÌ¤]¤£¨Ò¥~¡A¸I³£¤£´±¸I¤@¤U¡C¦ý¬O«á¨Ó¦b­åªR XOOPS ªºµ{¦¡¬[ºc®É¡A¶}©lµo²{ Smarty ¨ä¹ê¨Ã¤£Ãø¡C¥u­n±N Smarty °ò¦¥\½m¦n¡A¦b¤@¯ëÀ³¥Î¤W´N¤w¸g¬Û·í¨¬°÷¤F¡C·íµM°ò¦¯à¥´¦n¡A«á­±ªº¶i¶¥À³¥Î¤]´N¤£¥Î©È¤F¡C

³o½g¤å³¹ªº¥D­n¥Î·N¨Ã«D­n²`¤J±´°Q Smarty ªº¨Ï¥Î¡A³o¦b©x¤è¨Ï¥Î»¡©ú¤¤³£¤w¸g¼g±o«Ü§¹¾ã¤F¡Cµ§ªÌ¶È¦b¦¹¼g¤U¤@¨Ç¦Û¤v¨Ï¥Î¤Wªº¤ß±o¡AÅý·Q­n¤F¸Ñ Smarty «o¤£±o¨äªù¦Ó¤JªºªB¤Í¡A¥i¥H±q¤¤±o¨ì¤@¨Ç±Ò¥Ü¡C´N¦]¬°³o½g¤å³¹ªº¤º®e¤£¬O«D±`²`¤J¡A·|¨Ï¥Î Smarty ªºªB¤Í­Ì¥i¯à·|ı±o²³æ¤FÂI¡C

¥Ø«e¥»¤å¤w¸g²Ä¤T¦¸­×­q¤F¡A¥»·Q¦h¥[¤@¨Ç®Æ¶i¨Ó¡F¤£¹Lê©ó®É¶¡ªºÃö«Y¡A«Ü¦h Smarty ªº¶i¶¥§Þ¥©µ§ªÌ¨Ã¨S¦³¬ã¨s±o«Ü³z¹ý¡A©Ò¥H¤]¤£´±®³¥X¨Ó²{²´¡A¦ýµ§ªÌ¬Û«H³o½g¤å³¹À³¸Ó¯à°÷º¡¨¬¤j¦h¼Æ·Q¾Ç²ß Smarty ªºªì¾ÇªÌ¤F¡C·íµM¥»¤å¦³ÂÕ»~ªº¦a¤è¤]Åwªï§iª¾¡Aµ§ªÌ·|¦b¤U¤@¦¸ªº­×­q¤¤§ó¥¿ªº¡C

P.S. ½Ð¦b 1024 x 768 ªºÀô¹Ò¤U¬Ý·|¤ñ¸û¦n¡C

jaceju@seed.net.tw 2004/02/09


  1. Smarty¤¶²Ð

    1. ¤°»ò¬O¼Ëª©¤ÞÀº
    2. ¤£ª¾¹D±q¤°»ò®É­Ô¶}©l¡A¦³¤H¶}©l¹ï HTML ¤º´O¤J Server Script ı±o¤£¤Óº¡·N¡CµM¦Ó¤£½×¬O·L³nªº ASP ©Î¬O¶}©ñ·½½Xªº PHP¡A³£¬OÄݩ󤺴O Server Script ªººô­¶¦øªAºÝ»y¨¥¡C¦]¦¹¤]´N¦³¤H·Q¨ì¡A¦pªG¯à§âµ{¦¡À³¥ÎÅÞ¿è (©ÎºÙ°Ó·~À³¥ÎÅÞ¿è) »Pºô­¶§e²{ (Layout) ÅÞ¿è¤ÀÂ÷ªº¸Ü¡A¬O¤£¬O·|¤ñ¸û¦n©O¡H

      ¨ä¹ê³o­Ó°ÝÃD¦­´N¦s¦b¤w¤[¡A±q¤¬°Ê¦¡ºô­¶¶}©l­·¦æ®É¡A¤£½×¬O ASP ©Î¬O PHP ªº¨Ï¥ÎªÌ³£¬O¨­­Ýµ{¦¡¶}µoªÌ»PµøÄ±³]­p®v¨âºØ¨­¥÷¡C¥i¬O³q±`³o¨Ç¨Ï¥ÎªÌ¤£¬Oµ{¦¡±j´N¬O¬ü¤u±j¡A¦pªG­n¨âªÌ¦P®É­ÝÅU¡A¨º¥i±o¦º±¼¤£¤Ö¸£²Ó­M...

      ©Ò¥H¼Ëª©¤ÞÀº´NÀ³¹B¦Ó¥Í°Õ¡I¼Ëª©¤ÞÀºªº¥Øªº¡A´N¬O­n¹F¨ì¤W­z´£¨ìªºÅÞ¿è¤ÀÂ÷ªº¥\¯à¡C¥¦¯àÅýµ{¦¡¶}µoªÌ±Mª`©ó¸ê®Æªº±±¨î©Î¬O¥\¯àªº¹F¦¨¡F¦ÓµøÄ±³]­p®v«h¥i±Mª`©óºô­¶±Æª©¡AÅýºô­¶¬Ý°_¨Ó§ó¨ã¦³±M·~·P¡I¦]¦¹¼Ëª©¤ÞÀº«Ü¾A¦X¤½¥qªººô¯¸¶}µo¹Î¶¤¨Ï¥Î¡A¨Ï¨C­Ó¤H³£¯àµo´§¨ä±Mªø¡I

      ´Nµ§ªÌ±µÄ²¹Lªº¼Ëª©¤ÞÀº¨Ó»¡¡A¨Ì¸ê®Æ§e²{¤è¦¡¤j·§¤À¦¨¡G»Ý·f°tµ{¦¡³B²zªº¼Ëª©¤ÞÀº©M§¹¥þ¥Ñ¼Ëª©¥»¨­¦Û¦æ¨M©wªº¼Ëª©¤ÞÀº¨âºØ§Î¦¡¡C

      ¦b»Ý·f°tµ{¦¡³B²zªº¼Ëª©¤ÞÀº¤¤¡Aµ{¦¡¶}µoªÌ¥²¶·­n­t³dÅܼƪº§e²{ÅÞ¿è¡A¤]´N¬O»¡¥L¥²¶·§âÅܼƪº¤º®e¦b¿é¥X¨ì¼Ëª©«e¥ý³B²z¦n¡A¤~¯à°µ assign ªº¤u§@¡C´«¥y¸Ü»¡¡Aµ{¦¡¶}µoªÌÁÙ¬O±o¦h¼g¤@¨Çµ{¦¡¨Ó¨M©wÅܼƧe²{ªº­·»ª¡C¦Ó§¹¥þ¥Ñ¼Ëª©¥»¨­¦Û¦æ¨M©wªº¼Ëª©¤ÞÀº¡A¥¦¤¹³\Åܼƪ½±µ assign ¨ì¼Ëª©¤¤¡AÅýµøÄ±³]­p®v¦b³]­p¼Ëª©®É¦A¨M©wÅܼƭn¦p¦ó§e²{¡C¦]¦¹¥¦´N¥i¯à·|¦³¥t¤@®MÄÝ©ó¦Û¤vªº¼Ëª©µ{¦¡»yªk (¦p Smarty) ¡A¥H¤è«K±±¨îÅܼƪº§e²{¡C¦ý³o¼Ë¤@¨Ó¡AµøÄ±³]­p®v¤]±o¾Ç²ß¦p¦ó¨Ï¥Î¼Ëª©»y¨¥¡C


    3. ¼Ëª©¤ÞÀºªº¹B§@­ì²z
    4. ­º¥ý§Ú­Ì¥ý¬Ý¬Ý¥H¤Uªº¹B§@¹Ï¡G

      ¤@¯ëªº¼Ëª©¤ÞÀº (¦p PHPLib) ³£¬O¦b«Ø¥ß¼Ëª©ª«¥ó®É¨ú±o­n¸ÑªRªº¼Ëª©¡AµM«á§âÅܼƮM¤J«á¡A³z¹L parse() ³o­Ó¤èªk¨Ó¸ÑªR¼Ëª©¡A³Ì«á¦A±Nºô­¶¿é¥X¡C

      ¹ï Smarty ªº¨Ï¥ÎªÌ¨Ó»¡¡Aµ{¦¡¸Ì¤]¤£»Ý­n°µ¥ô¦ó parse ªº°Ê§@¤F¡A³o¨Ç Smarty ¦Û°Ê·|À°§Ú­Ì°µ¡C¦Ó¥B¤w¸g½s͹Lªººô­¶¡A¦pªG¼Ëª©¨S¦³Åܰʪº¸Ü¡A Smarty ´N¦Û°Ê¸õ¹L½sĶªº°Ê§@¡Aª½±µ°õ¦æ½s͹Lªººô­¶¡A¥H¸`¬Ù½sĶªº®É¶¡¡C


    5. ¨Ï¥ÎSmartyªº¤@¨Ç·§©À
    6. ¦b¤@¯ë¼Ëª©¤ÞÀº¤¤¡A§Ú­Ì±`¬Ý¨ì°Ï°ìªºÆ[©À¡A©Ò¿×°Ï¶ô¤j·§³£·|ªø¦¨³o¼Ë¡G

      <!-- START : Block name -->
      °Ï°ì¤º®e
      <!-- END : Block name -->

      ³o¨Ç°Ï¶ô¤j³¡¥÷³£·|¦b PHP µ{¦¡¤¤¥H if ©Î for, while ¨Ó±±¨î¥¦­ÌªºÅã¥Üª¬ºA¡AÁöµM¼Ëª©¬Ý°_¨Ó²¼ä¦h¤F¡A¦ý¥u­n¤@´«¤FÅã¥Ü¤è¦¡¤£¦Pªº¼Ëª©¡A PHP µ{¦¡¶Õ¥²­n¦A§ï¤@¦¸¡I

      ¦b Smarty ¤¤¡A¤@¤Á¥HÅܼƬ°¥D¡A©Ò¦³ªº§e²{ÅÞ¿è³£Åý¼Ëª©¦Û¦æ±±¨î¡C¦]¬° Smarty ·|¦³¦Û¤vªº¼Ëª©»y¨¥¡A©Ò¥H¤£ºÞ¬O°Ï¶ô¬O§_­nÅã¥ÜÁÙ¬O­n­«ÂСA³£¬O¥Î Smarty ªº¼Ëª©»yªk (if, foreach, section) ·f°tÅܼƤº®e§@§e²{¡C³o¼Ë¤@¨Ó·Pı¤W¦n¹³¼Ëª©Åܱo¦³ÂI½ÆÂø¡A¦ý¦n³B¬O¥u­n³W¹º±o·í¡A PHP µ{¦¡¤@¦æ³£¤£¥²§ï¡C

      ¥Ñ¤W­±ªº»¡©ú¡A§Ú­Ì¥i¥Hª¾¹D¨Ï¥Î Smarty ­n´x´¤¤@­Ó­ì«h¡G±Nµ{¦¡À³¥ÎÅÞ¿è»Pºô­¶§e²{ÅÞ¿è©ú½T¦a¤ÀÂ÷¡C´N¬O»¡ PHP µ{¦¡¸Ì¤£­n¦³¤Ó¦hªº HTML ½X¡Cµ{¦¡¤¤¥u­n¨M©w¦n¨º¨ÇÅܼƭn¶ë¨ì¼Ëª©¸Ì¡AÅý¼Ëª©¦Û¤v¨M©w¸Ó¦p¦ó§e²{³o¨ÇÅÜ¼Æ (¬Æ¦Ü¤£§e²{¤]¦æ) ¡C


  2. Smartyªº°ò¦

    1. ¦w¸ËSmarty
    2. ­º¥ý¡A§Ú­Ì¥ý¨M©wµ{¦¡©ñ¸mªº¦ì¸m¡C
      Windows¤U¥i¯à·|Ãþ¦ü³o¼Ëªº¦ì¸m¡G¡u d:\appserv\web\demo\ ¡v¡C
      Linux¤U¥i¯à·|Ãþ¦ü³o¼Ëªº¦ì¸m¡G¡u /home/jaceju/public_html/ ¡v¡C
      ¨ìSmartyªº©x¤èºô¯¸¤U¸ü³Ì·sªºSmarty®M¥ó¡Ghttp://smarty.php.net¡C
      ¸Ñ¶} Smarty 2.6.0 «á¡A·|¬Ý¨ì«Ü¦hÀɮסA¨ä¤¤¦³­Ó libs ¸ê®Æ§¨¡C¦b libs ¤¤À³¸Ó·|¦³ 3 ­Ó class.php ÀÉ + 1 ­Ó debug.tpl + 1 ­Ó plugin ¸ê®Æ§¨ + 1 ­Ó core ¸ê®Æ§¨¡CµM«áª½±µ±N libs ½Æ»s¨ì±zªºµ{¦¡¥D¸ê®Æ§¨¤U¡A¦A§ó¦W¬° class ´N¥i¥H¤F¡C´N³o¼Ë¡H¨S¿ù¡I³oºØ¦w¸Ëªk¤ñ¸û²³æ¡A¾A¦X¤@¯ë¨S¦³¦Û¤v¥D¾÷ªº¨Ï¥ÎªÌ¡C

      ¦Ü©ó Smarty ©x¤è¤â¥U¤¤¬°¤°»ò­n¤¶²Ð¤@¨Ç¤ñ¸û½ÆÂøªº¦w¸Ë¤è¦¡©O¡H°ò¥»¤W¨Ì·Ó©x¤èªº¤è¦¡¦w¸Ë¡A¥i¥H¥u¦b¥D¾÷¦w¸Ë¤@¦¸¡AµM«á´£¨Ñµ¹¸Ó¥D¾÷¤U©Ò¦³³]­pªÌ¶}µo¤£¦Pµ{¦¡®Éª½±µ¤Þ¥Î¡A¦Ó¤£·|­«ÂЦw¸Ë¤Ó¦hªº Smarty ½Æ¥»¡C¦Óµ§ªÌ©Ò´£¨Ñªº¤è¦¡«h¬O¾A¦X­n§âµ{¦¡±a¹L¨Ó²¾¹L¥hªºµ{¦¡¶}µoªÌ¨Ï¥Î¡A³o¼Ë¤£¥Î·Ð´o¥D¾÷¦³¨S¦³¦w¸Ë Smarty ¡C


    3. µ{¦¡ªº¸ê®Æ§¨³]©w
    4. ¥Hµ§ªÌ¦bWindows¦w¸ËAppserv¬°¨Ò¡Aµ{¦¡ªº¥D¸ê®Æ§¨¬O¡ud:\appserv\web\demo\¡v¡C¦w¸Ë¦nSmarty«á¡A§Ú­Ì¦b¥D¸ê®Æ§¨¤U¦A«Ø¥ß³o¼Ëªº¸ê®Æ§¨¡G

      ¦b Linux ©³¤U¡A½Ð°O±o±N templates_c ªºÅv­­ÅÜ§ó¬° 777 ¡CWindows ¤U«h±N¨ä°ßŪ¨ú®ø¡C


    5. ²Ä¤@­Ó¥ÎSmarty¼gªº¤pµ{¦¡
    6. §Ú­Ì¥ý³]©w Smarty ªº¸ô®|¡A½Ð±N¥H¤U³o­ÓÀɮשR¦W¬° main.php ¡A¨Ã©ñ¸m¨ì¥D¸ê®Æ§¨¤U¡G

      main.php:
      <?php
          include "class/Smarty.class.php";
          define('__SITE_ROOT', 'd:/appserv/web/demo'); // ³Ì«á¨S¦³±×½u
          $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 = '}>';
      ?>

      ·Ó¤W­±¤è¦¡³]©wªº¥Î·N¦b©ó¡Aµ{¦¡¦pªG­n²¾´Ó¨ì¨ä¥L¦a¤è¡A¥u­n§ï __SITE_ROOT ´N¥i¥H°Õ¡C (³o¸Ì¬O°Ñ¦Ò XOOPS ªº )

      Smarty ªº¼Ëª©¸ô®|³]©w¦n«á¡Aµ{¦¡·|¨Ì·Ó³o­Ó¸ô®|¨Ó§ì©Ò¦³¼Ëª©ªº¬Û¹ï¦ì¸m (½d¨Ò¤¤¬O 'd:/appserv/web/demo/templates/' ) ¡CµM«á§Ú­Ì¥Î display() ³o­Ó Smarty ¤èªk¨ÓÅã¥Ü§Ú­Ìªº¼Ëª©¡C

      ±µ¤U¨Ó§Ú­Ì¦b templates ¸ê®Æ§¨¤U©ñ¸m¤@­Ó test.htm¡G(°ÆÀɦW¥s¤°»ò³£µL©Ò¿×¡A¦ý«K©óµøÄ±³]­p®v¶}µo¡Aµ§ªÌ³£ÁÙ¬O¥H .htm ¬°¥D¡C)

      templates/test.htm:
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=big5">
      <title><{$title}></title>
      </head>
      <body>
      <{$content}>
      </body>
      </html>

      ²{¦b§Ú­Ì­n±N¤W­±ªº¼Ëª©Åã¥Ü¥X¨Ó¡A¨Ã±Nºô­¶¼ÐÃD ($title) »P¤º®e ($content) §ó´«¡A½Ð±N¥H¤UÀɮפº®e©R¦W¬° test.php ¡A¨Ã©ñ¸m¦b¥D¸ê®Æ§¨¤U¡G

      test.php:
      <?php
          require "main.php";
          $tpl->assign("title", "´ú¸Õ¥Îªººô­¶¼ÐÃD");
          $tpl->assign("content", "´ú¸Õ¥Îªººô­¶¤º®e");
          // ¤W­±¨â¦æ¤]¥i¥H¥Î³o¦æ¥N´À
          // $tpl->assign(array("title" => "´ú¸Õ¥Îªººô­¶¼ÐÃD", "content" => "´ú¸Õ¥Îªººô­¶¤º®e"));
          $tpl->display('test.htm');
      ?>

      ½Ð¥´¶}ÂsÄý¾¹¡A¿é¤J http://localhost/demo/test.php ¸Õ¸Õ¬Ý(¨Ì±zªºÀô¹Ò¨M©wºô§})¡AÀ³¸Ó·|¬Ý¨ì¥H¤Uªºµe­±¡G

      ¦A¨ì templates_c ©³¤U¡A§Ú­Ì·|¬Ý¨ì¤@­Ó©_©Çªº¸ê®Æ§¨ (%%179) ¡A¦AÂI¿ï¤U¥h¤]¬O¤@­Ó©_©Çªº¸ê®Æ§¨ (%%1798044067) ¡A¦Ó¨ä¤¤¦³¤@­ÓÀɮסG

      templates_c/%%179/%%1798044067/test.htm.php:
      <?php /* Smarty version 2.6.0, created on 2003-12-15 22:19:45 compiled from test.htm */ ?>
      <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>

      ¨S¿ù¡A³o´N¬O Smarty ½s͹LªºÀɮסC¥¦±N§Ú­Ì¦b¼Ëª©¤¤ªºÅܼÆÂà´«¦¨¤F PHP ªº»yªk¨Ó°õ¦æ¡A¤U¦¸¦AŪ¨ú¦P¼Ëªº¤º®e®É¡A Smarty ´N·|ª½±µ§ì¨ú³o­ÓÀɮרӰõ¦æ¤F¡C

      ³Ì«á§Ú­Ì¾ã²z¤@¤U¾ã­Ó Smarty µ{¦¡¼¶¼g¨BÆJ¡G

      Step 1. ¸ü¤J Smarty ¼Ëª©¤ÞÀº¡C
      Step 2. «Ø¥ß Smarty ª«¥ó¡C
      Step 3. ³]©w Smarty ª«¥óªº°Ñ¼Æ¡C
      Step 4. ¦bµ{¦¡¤¤³B²zÅܼƫá¡A¦A¥Î Smarty ªº assign ¤èªk±NÅܼƸm¤J¼Ëª©¸Ì¡C
      Step 5. §Q¥Î Smarty ªº display ¤èªk±Nºô­¶¨q¥X¡C


    7. ¦p¦ó¦w±Æ§Aªºµ{¦¡¬[ºc
    8. ¤W­±§Ú­Ì¬Ý¨ì°£¤F Smarty ©Ò»Ý­nªº¸ê®Æ§¨¥~ (class ¡B configs ¡B templates ¡B templates_c) ¡AÁÙ¦³¨â­Ó¸ê®Æ§¨¡G includes ¡B modules ¡C¨ä¹ê³o¬Oµ§ªÌ¼Ò¥é XOOPS ªº¬[ºc©Ò«Ø¥ß¥X¨Óªº¡A¦]¬° XOOPS ¬Oµ§ªÌ©Ò±µÄ²¨ìªºµ{¦¡¤¤¡A¤Ö¼Æ¨Ï¥Î Smarty ¼Ëª©¤ÞÀºªº¬[¯¸µ{¦¡¡C©Ò¿×¦è¥Ê°¹¤jÃä¡Aµ§ªÌ³o¼Ëªºµ{¦¡¬[ºcÁö¨S¦³ XOOPS ªº¦Ê¤À¤§¤@±j¡A¦ý¦Ü¤Öµ¹¤H¬Ý®ÉÁÙ¦³ XOOPS ¼µ¸y¡C

      includes ³o­Ó¸ê®Æ§¨¥D­n¬O¥Î¨Ó©ñ¸m¤@¨Ç function ¡B sql ÀÉ¡A³o¼Ë¦b main.php ´N¥i¥H±N¥¦­Ì¤Þ¤J¤F¡A¦p¤U¡G

      main.php:
      <?php
          include "class/Smarty.class.php";
          define('__SITE_ROOT', 'd:/appserv/web/demo'); // ³Ì«á¨S¦³±×½u
          // ¥H main.php ªº¦ì¸m¬°°ò·Ç
          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 ³o­Ó¸ê®Æ§¨«h¬O¥Î¨Ó©ñ¸mµ{¦¡¼Ò²Õªº¡A¦p¦¹¤@¨Ó«K¤£·|§âµ{¦¡¥á±o¨ì³B³£¬O¡A¾ãÅé¬[ºc¤@¥ØÁAµM¡C

      ¤W­±§Ú­Ì¤]´£¨ì main.php ¡A³o¬O¾ã­Óµ{¦¡ªº¥D­n®Ö¤ß¡A¤£½×¬O±`¼Æ©w¸q¡B¥~³¡µ{¦¡¸ü¤J¡B¦@¥ÎÅܼƫإߵ¥¡A³£¬O¦b³o¸Ì¶}©lªº¡C©Ò¥H¤§«áªº¼Ò²Õ³£¥u­n±N³o­ÓÀÉ®×¥]§t¶i¨Ó´N¥i¥H°Õ¡C¦]¦¹¦bµ{¦¡¬yµ{³W¹º´Á¶¡¡A´N¥²¶·¦n¦nºc«ä main.php ¤¤À³¸Ó­n©ñ¨º¨ÇªF¦è¡F·íµM§Q¥Î include ©Î require «ü¥O¡A§â¨C­ÓÀô¸`²M·¡¤ÀÂ÷¬O¦A¦n¤£¹L¤F¡C

      ¦b¤W¸`´£¨ìªº Smarty µ{¦¡ 5 ¨BÆJ¡A main.php ´N·|À°§Ú­Ì¥ý±N«e 3 ­Ó¨BÆJ°µ¦n¡A«á­±ªº¼Ò²Õµ{¦¡¥u­n°µ«á­±¨â­Ó¨BÆJ´N¥i¥H¤F¡C


  3. ±qÅܼƶ}©l

    1. ¦p¦ó¨Ï¥ÎÅܼÆ
    2. ±q¤W¤@³¹½d¨Ò¤¤¡A§Ú­Ì¥i¥H²M·¡¦a¬Ý¨ì§Ú­Ì§Q¥Î <{ ¤Î }> ³o¨â­Ó¼Ð¥Ü²Å¸¹±NÅܼƥ]°_¨Ó¡C¹w³]ªº¼Ð¥Ü²Å¸¹¬° { ¤Î } ¡A¦ý¬°¤F¤¤¤å½Ä½X¤Î Javascript ªºÃö«Y¡A¦]¦¹µ§ªÌÁÙ¬O¼Ò¥é XOOPS ¡A±N¼Ð¥Ü²Å¸¹´«±¼¡CÅܼƪº©R¦W¤è¦¡©M PHP ªºÅܼƩR¦W¤è¦¡¬O¤@¼Ò¤@¼Ëªº¡A«e­±¤]¦³­Ó $ ¦r¸¹ (³o©M¤@¯ëªº¼Ëª©¤ÞÀº¤£¦P)¡C¼Ð¥Ü²Å¸¹´N¦³ÂI¹³¬O PHP ¤¤ªº <?php ¤Î ?> (¨Æ¹ê¤W¥¦­Ìªº½T·|³Q´À´«¦¨³o­Ó) ¡A©Ò¥H¥H¤Uªº¼Ëª©ÅܼƼgªk³£¬O¥i¦æªº¡G

      1. <{$var}>
      2. <{ $var }> <!-- ©MÅܼƤ§¶¡¦³ªÅ®æ -->
      3. <{$var
      }> <!-- ±Ò©lªº¼Ð¥Ü²Å¸¹©Mµ²§ôªº¼Ð¥Ü²Å¸¹¤£¦b¦P¤@¦æ -->

      ¦b Smarty ¸Ì¡AÅܼƹw³]¬O¥þ°ìªº¡A¤]´N¬O»¡§A¥u­n«ü©w¤@¦¸´N¦n¤F¡C«ü©w¨â¦¸¥H¤Wªº¸Ü¡AÅܼƤº®e·|¥H³Ì«á«ü©wªº¬°¥D¡C´Nºâ§Ú­Ì¦b¥D¼Ëª©¤¤¸ü¤J¤F¥~³¡ªº¤l¼Ëª©¡A¤l¼Ëª©¤¤¦P¼ËªºÅܼƤ@¼Ë¤]·|³Q´À¥N¡A³o¼Ë§Ú­Ì´N¤£¥Î¦A°w¹ï¤l¼Ëª©¦A°µ¤@¦¸¸ÑªRªº°Ê§@¡C

      ¦Ó¦b PHP µ{¦¡¤¤¡A§Ú­Ì¥Î Smarty ªº assign ¨Ó±NÅܼƸm©ñ¨ì¼Ëª©¤¤¡C assign ªº¥Îªk©x¤è¤â¥U¤¤¤w¸g¼g±o«Ü¦h¤F¡A¥Îªk´N¦p¦P¤W¤@¸`ªº½d¨Ò©Ò¥Ü¡C¤£¹L¦b­«Âа϶ô®É¡A§Ú­Ì´N¥²¶·±NÅܼưµ¤@¨Ç¤â¸}«á¡A¤~¯à±NÅÜ¼Æ assign ¨ì¼Ëª©¤¤¡A³o¦b¤U¤@³¹¦A´£¡C


    3. ­×¹¢§AªºÅܼÆ
    4. ¤W­±§Ú­Ì´£¨ì Smarty ÅܼƧe²{ªº­·»ª¬O¥Ñ¼Ëª©¦Û¦æ¨M©wªº¡A©Ò¥H Smarty ´£¨Ñ¤F³\¦h­×¹¢Åܼƪº¨ç¦¡¡C¨Ï¥Îªº¤èªk¦p¤U¡G

      <{ÅܼÆ|­×¹¢¨ç¦¡}> <!-- ·í­×¹¢¨ç¦¡¨S¦³°Ñ¼Æ®É -->
      <{ÅܼÆ|­×¹¢¨ç¦¡:"°Ñ¼Æ(«D¥²­n¡Aµø¨ç¦¡¦Ó©w)"}> <!-- ·í­×¹¢¨ç¦¡¦³°Ñ¼Æ®É -->

      ½d¨Ò¦p¤U¡G

      <{$var|nl2br}> <!-- ±NÅܼƤ¤ªº´«¦æ¦r¤¸´«¦¨ <br /> -->
      <{$var|string_format:"%02d"}> <!-- ±NÅܼƮ榡¤Æ -->

      ¦n¡A¨º¬°¤°»ò­nÅý¼Ëª©¦Û¦æ¨M©wÅܼƧe²{ªº­·»ª¡H¥ý¬Ý¬Ý©³¤Uªº HTML ¡A³o¬O¬Y­ÓÁʪ«¨®µ²±bªº³¡¥÷µe­±¡C

      <input name="total" type="hidden" value="21000" />
      Á`ª÷ÃB¡G21,000 ¤¸

      ¤@¯ë¼Ëª©¤ÞÀºªº¼Ëª©¥i¯à·|³o¼Ë¼g¡G

      <input name="total" type="hidden" value="{total}" />
      Á`ª÷ÃB¡G{format_total} ¤¸

      ¥¦­Ìªº PHP µ{¦¡¤¤­n³o¼Ë¼g¡G

      <?php
          $total = 21000;
          $tpl->assign("total", $total);
          $tpl->assign("format_total", number_format($total));
      ?>

      ¦Ó Smarty ªº¼Ëª©´N¥i¥H³o¼Ë¼g¡G (number_format ­×¹¢¨ç¦¡½Ð¨ì Smarty ©x¤èºô­¶¤U¸ü)

      <input name="total" type="hidden" value="<{$total}>" />
      Á`ª÷ÃB¡G<{$total|number_format:""}> ¤¸

      Smarty ªº PHP µ{¦¡¤¤¥u­n³o¼Ë¼g¡G

      <?php
          $total = 21000;
          $tpl->assign("total", $total);
      ?>

      ©Ò¥H¦b Smarty ¤¤§Ú­Ì¥u­n«ü©w¤@¦¸ÅܼơA³Ñ¤Uªº¥æµ¹¼Ëª©¦Û¦æ¨M©w§Y¥i¡C³o¼ËÁA¸Ñ¤F¶Ü¡H³o´N¬OÅý¼Ëª©¦Û¦æ¨M©wÅܼƧe²{­·»ªªº¦n³B¡I


  4. ±±¨î¼Ëª©ªº¤º®e

    1. ­«ÂЪº°Ï¶ô
    2. ¦b Smarty ¼ËªO¤¤¡A§Ú­Ì­n­«ÂФ@­Ó°Ï¶ô¦³¨âºØ¤è¦¡¡G foreach ¤Î section ¡C¦Ó¦bµ{¦¡¤¤§Ú­Ì«h­n assign ¤@­Ó°}¦C¡A³o­Ó°}¦C¤¤¥i¥H¥]§t¼Æ²Õ°}¦C¡C´N¹³¤U­±³o­Ó¨Ò¤l¡G

      ­º¥ý§Ú­Ì¨Ó¬Ý PHP µ{¦¡¬O¦p¦ó¼gªº¡G

      test2.php:
      <?php
          require "main.php";
          $array1 = array(1 => "Ä«ªG", 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");
      ?>

      ¦Ó¼Ëª©ªº¼gªk¦p¤U¡G

      templates/test2.htm:
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=big5">
      <title>´ú¸Õ­«Âа϶ô</title>
      </head>
      <body>
      <pre>
      §Q¥Î foreach ¨Ó§e²{ array1
      <{foreach item=item1 from=$array1}>
      <{$item1}>
      <{/foreach}>
      §Q¥Î section ¨Ó§e²{ array1
      <{section name=sec1 loop=$array1}>
      <{$array1[sec1]}>
      <{/section}>
      §Q¥Î foreach ¨Ó§e²{ array2
      <{foreach item=index2 from=$array2}>
      <{foreach key=key2 item=item2 from=$index2}>
      <{$key2}>: <{$item2}>
      <{/foreach}>
      <{/foreach}>
      §Q¥Î section ¨Ó§e²{ array1
      <{section name=sec2 loop=$array2}>
      index1: <{$array2[sec2].index1}>
      index2: <{$array2[sec2].index2}>
      index3: <{$array2[sec2].index3}>
      <{/section}>
      </pre>
      </body>
      </html>

      °õ¦æ¤W¨Ò«á¡A§Ú­Ìµo²{¤£ºÞ¬O foreach ©Î section ¨â­Ó°õ¦æµ²ªG¬O¤@¼Ëªº¡C¨º»ò¨âªÌ¨ì©³¦³¦ó¤£¦P©O¡H

      ²Ä¤@­Ó®t§O«Ü©úÅã¡A´N¬O foreach ­n¥H±_ª¬³B²zªº¤è¦¡¨Ó§e²{§Ú­Ì©Ò assign ªº¨â¼h°}¦CÅܼơA¦Ó section «h¥H¡u¥D°}¦C[°j°é¦WºÙ].¤l°}¦C¯Á¤Þ¡v§Y¥i±N¾ã­Ó°}¦C§e²{¥X¨Ó¡C¥Ñ¦¹¥iª¾¡A Smarty ¦b¼Ëª©¤¤ªº foreach ©M PHP ¤¤ªº foreach ¬O¤@¼Ëªº¡F¦Ó section «h¬O Smarty ¬°¤F³B²z¦p¤W¦Cªº°}¦CÅܼƩҵo®i¥X¨Óªº±Ô­z¡C·íµM section ªº¥\¯àÁÙ¤£¥u¦p¦¹¡A°£¤F¤U¤@¸`©Ò½Í¨ìªº±_ª¬¸ê®Æ§e²{¥~¡A©x¤è¤â¥U¤¤¤]´£¨Ñ¤F¦n´X­Ó section ªºÀ³¥Î½d¨Ò¡C

      ¤£¹L­nª`·Nªº¬O¡A¥áµ¹ section ªº°}¦C¯Á¤Þ¥²¶·¬O±q 0 ¶}©lªº¥¿¾ã¼Æ¡A§Y 0, 1, 2, 3, ...¡C¦pªG±zªº°}¦C¯Á¤Þ¤£¬O±q 0 ¶}©lªº¥¿¾ã¼Æ¡A¨º»ò´N±o§ï¥Î foreach ¨Ó§e²{±zªº¸ê®Æ¡C±z¥i¥H°Ñ¦Ò©x¤è°Q½×°Ï¤¤ªº¦¹½g°Q½×¡A¨ä¤¤±´°Q¤F section ©M foreach ªº¥Îªk¡C


    3. ±_ª¬¸ê®Æªº§e²{
    4. ¼Ëª©¤ÞÀº¸Ì³Ì¥O¤H¶Ë¸£µ¬ªº¤j·§´N¬O±_ª¬¸ê®Æªº§e²{§a¡A³\¦hµÛ¦Wªº¼Ëª©¤ÞÀº³£·|¯S·N±j½Õ³oÂI¡A¤£¹L³o¹ï Smarty ¨Ó»¡«o¬O¤p¨à¬ì¡C

      ³Ì±`¨£¨ìªº±_ª¬¸ê®Æ¡A´Nºâ½×ôε{¦¡¤¤ªº°Q½×¥DÃD°Ï§a¡C°²³]­n§e²{ªºµ²ªG¦p¤U¡G

      ¤½§i°Ï
        ¯¸°È¤½§i
      ¤å¾Ç±M°Ï
        ¦n®Ñ¤¶²Ð
        ©_¤å¦@½à
      ¹q¸£±M°Ï
        µwÅé¶gÃä
        ³nÅé°Q½×

      µ{¦¡¤¤§Ú­Ì¥ý¥HÀRºA¸ê®Æ¬°¨Ò¡G

      test3.php:
      <?php
          require "main.php";
          $forum = array(
              array("category_id" => 1, "category_name" => "¤½§i°Ï",
                  "topic" => array(
                      array("topic_id" => 1, "topic_name" => "¯¸°È¤½§i")
                  )
              ),
              array("category_id" => 2, "category_name" => "¤å¾Ç±M°Ï",
                  "topic" => array(
                      array("topic_id" => 2, "topic_name" => "¦n®Ñ¤¶²Ð"),
                      array("topic_id" => 3, "topic_name" => "©_¤å¦@½à")
                  )
              ),
              array("category_id" => 3, "category_name" => "¹q¸£±M°Ï",
                  "topic" => array(
                      array("topic_id" => 4, "topic_name" => "µwÅé¶gÃä"),
                      array("topic_id" => 5, "topic_name" => "³nÅé°Q½×")
                  )
              )
          );
          $tpl->assign("forum", $forum);
          $tpl->display("test3.htm");
          ?>

      ¼Ëª©ªº¼gªk¦p¤U¡G

      templates/test3.htm:
      <html>
      <head>
      <title>±_ª¬°j°é´ú¸Õ</title>
      </head>
      <body>
      <table width="200" border="0" 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">&nbsp;</td>
              <td width="164"><{$forum[sec1].topic[sec2].topic_name}></td>
          </tr>
          <{/section}>
          <{/section}>
      </table>
      </body>
      </html>

      °õ¦æªºµ²ªG´N¹³µ§ªÌÁ|ªº¨Ò¤l¤@¼Ë¡C

      ¦]¦¹©O¡A¦bµ{¦¡¤¤§Ú­Ì¥u­n·Q¿ìªk§â©Ò­n­«ÂЭȤ@¼h¤@¼hªº¶ë¨ì°}¦C¤¤¡A¦A§Q¥Î <{²Ä¤@¼h°}¦C[°j°é1].²Ä¤G¼h°}¦C[°j°é2].²Ä¤T¼h°}¦C[°j°é3]. ... .°}¦C¯Á¤Þ}> ³o¼Ëªº¤è¦¡¨ÓÅã¥Ü¨C¤@­Ó±_ª¬°j°é¤¤ªº­È¡C¦Ü©ó¥Î¤°»ò¤èªk©O¡H¤U¤@¸`¨Ï¥Î¸ê®Æ®w®É§Ú­Ì¦A´£¡C


    5. Âà´«¸ê®Æ®w¤¤ªº¸ê®Æ
    6. ¤W­±´£¨ì¦p¦óÅã¥Ü±_ª¬°j°é¡A¦Ó¹ê»Ú¤WÀ³¥Î®É§Ú­Ìªº¸ê®Æ¥i¯à¬O±q¸ê®Æ®w¤¤§ì¨ú¥X¨Óªº¡A©Ò¥H§Ú­Ì´N±o·Q¿ìªk§â¸ê®Æ®wªº¸ê®ÆÅܦ¨¤W­zªº¦h­«°}¦Cªº§Î¦¡¡C³o¸Ìµ§ªÌ¥Î¤@­Ó DB Ãþ§O¨Ó§ì¨ú¸ê®Æ®w¤¤ªº¸ê®Æ¡A±z¥i¥H¦Û¦æ¥Î±z³ßÅwªº¤èªk¡C

      §Ú­Ì¥u­×§ï PHP µ{¦¡¡A¼Ëª©ÁÙ¬O¤W­±¨º­Ó (³o´N¬O¼Ëª©¤ÞÀºªº¦n³B~)¡A¨ä¤¤ $db ³o­Óª«¥ó°²³]¤w¸g¦b main.php ¤¤«Ø¥ß¦n¤F¡A¦Ó¥B§ì¥X¨Óªº¸ê®Æ´N¬O¤W­±ªº¨Ò¤l¡C

      test3.php:
      <?php
          require "main.php";
          // ¥ý«Ø¥ß²Ä¤@¼h°}¦C
          $category = array();
          $db->setSQL($SQL1, 'CATEGORY');
          if (!$db->query('CATEGORY')) die($db->error());
          // §ì¨ú²Ä¤@¼h°j°éªº¸ê®Æ
          while ($item_category = $db->fetchAssoc('CATEGORY'))
          {
              // «Ø¥ß²Ä¤G¼h°}¦C
              $topic = array();
              $db->setSQL(sprintf($SQL2, $item_category['category_id']), 'TOPIC');
              if (!$db->query('TOPIC')) die($db->error());
              
      // §ì¨ú²Ä¤G¼h°j°éªº¸ê®Æ
              while ($item_topic = $db->fetchAssoc('TOPIC'))
              {
                  
      // §â§ì¨úªº¸ê®Æ±À¤J²Ä¤G¼h°}¦C¤¤
                  array_push($topic, $item_topic);
              }

              
      // §â²Ä¤G¼h°}¦C«ü©w¬°²Ä¤@¼h°}¦C©Ò§ì¨úªº¸ê®Æ¤¤ªº¤@­Ó¦¨­û
              $item_category['topic'] = $topic;
              // §â²Ä¤@¼h¸ê®Æ±À¤J²Ä¤@¼h°}¦C¤¤
              array_push($category, $item_category);
          }
          $tpl->assign("forum", $category);
          $tpl->display("test3.htm");
      ?>

      ¦b¸ê®Æ®w§ì¨ú¤@µ§¸ê®Æ«á¡A§Ú­Ì±o¨ìªº¬O¤@­Ó¥]§t¸Óµ§¸ê®Æªº°}¦C¡C³z¹L while ±Ô­z¤Î array_push ¨ç¦¡¡A§Ú­Ì±N¸ê®Æ®w¤¤ªº¸ê®Æ¤@µ§¤@µ§¶ë¨ì°}¦C¸Ì¡C¦pªG±z¥u¥Î¨ì³æ¼h°j°é¡A´N§â²Ä¤G¼h°j°é (¬õ¦âªº³¡¥÷) ¥h±¼§Y¥i¡C


    7. ¨M©w¤º®e¬O§_Åã¥Ü
    8. ­n¨M©w¬O§_Åã¥Ü¤º®e¡A§Ú­Ì¥i¥H¨Ï¥Î if ³o­Ó»yªk¨Ó°µ¿ï¾Ü¡C¨Ò¦p¦pªG¨Ï¥ÎªÌ¤w¸gµn¤Jªº¸Ü¡A§Ú­Ìªº¼Ëª©´N¥i¥H³o¼Ë¼g¡G

      <{if $is_login == true}>
      Åã¥Ü¨Ï¥ÎªÌ¾Þ§@¿ï³æ
      <{else}>
      Åã¥Ü¿é¤J±b¸¹©M±K½Xªºªí³æ
      <{/if}>

      ­nª`·Nªº¬O¡A¡u==¡v¸¹¨âÃä¤@©w­n¦U¯d¦Ü¤Ö¤@­ÓªÅ¥Õ¦r¤¸¡A§_«h Smarty ·|µLªk¸ÑªR¡C

      if »yªk¤@¯ëªºÀ³¥Î¥i¥H°Ñ·Ó©x¤è¨Ï¥Î»¡©ú¡A©Ò¥Hµ§ªÌ¦b³o¸Ì´N¤£¸Ô¥[¤¶²Ð¤F¡C¤£¹Lµ§ªÌµo²{¤F¤@­Ó¦³½ìªºÀ³¥Î¡G±`±`·|¬Ý¨ìµ{¦¡¸Ì­n²£¥Í³o¼Ëªº¤@­Óªí®æ¡G (¼Æ¦r¥Nªíªº¬O¸ê®Æ¶°ªº¶¶§Ç)

      1 2
      3 4
      5 6
      7 8

      ³o­Óµ§ªÌºÙ¤§¬°¡u¾î¦V­«ÂÐªí®æ¡v¡C¥¦ªº¯S¦â©M¶Ç²ÎªºÁa¦V­«ÂФ£¦P¡A«e´X¸`§Ú­Ì¬Ý¨ìªº­«ÂÐªí®æ³£¬O±q¤W¦Ó¤U¡A¤@¦C¥u¦³¤@µ§¸ê®Æ¡C¦Ó¾î¦V­«ÂÐªí®æ«h¥i¥H¾î¦V¦a¦b¤@¦C¤¤²£¥Í n µ§¸ê®Æ«á¡A¦A´«¤U¤@¦C¡Aª½¨ì¾ã­Ó°j°éµ²§ô¡C­n¹F¨ì³o¼Ëªº¥\¯à¡A³Ì²³æªº¤è¦¡¥u»Ý­n section ©M if ·f°t§Y¥i¡C

      §Ú­Ì¨Ó¬Ý¬Ý¤U­±³o­Ó¨Ò¤l¡G

      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');
      ?>

      ¼Ëª©ªº¼gªk¦p¤U¡G

      templates/test4.htm:
      <html>
      <head>
      <title>¾î¦V­«ÂÐªí®æ´ú¸Õ</title>
      </head>
      <body>
      <table width="500" border="1" 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>

      ­«ÂI¦b©ó $smarty.section.sec1.rownum ³o­Ó Smarty ÅܼơA¦b section °j°é¤¤³o­ÓÅܼƷ|¨ú±o±q 1 ¶}©lªº ¯Á¤Þ­È¡A©Ò¥H·í rownum ¯à³Q 2 °£ºÉ®É¡A´N¿é¥X </tr><tr> ¨Ïªí®æ´«¦C (ª`·N¡I¬O </tr> ¦b«e­± <tr> ¦b«á­±) ¡C¦]¦¹¼Æ¦r 2 ´N¬O§Ú­Ì¦b¤@¦C¤¤·Q­n§e²{ªº¸ê®Æµ§¼Æ¡C¦U¦ì¥i¥H¥Ñ¦¹¥hÅܤƨä¥L¤£¦Pªº§e²{¤è¦¡¡C


    9. ¸ü¤J¥~³¡¤º®e
    10. §Ú­Ì¥i¥H¦b¼Ëª©¤º¸ü¤J PHP µ{¦¡½X©Î¬O¥t¤@­Ó¤l¼Ëª©¡A¤À§O¬O¨Ï¥Î include_php ¤Î include ³o¨â­Ó Smarty ¼Ëª©»yªk¡F include_php µ§ªÌ¸û¤Ö¥Î¡A¨Ï¥Î¤è¦¡¥i¥H¬d¸ß©x¤è¤â¥U¡A³o¸Ì¤£¦A±Ô­z¡C

      ¦b¨Ï¥Î include ®É¡A§Ú­Ì¥i¥H¹w¥ý¸ü¤J¤l¼Ëª©¡A©Î¬O°ÊºA¸ü¤J¤l¼Ëª©¡C¹w¥ý¸ü¤J³q±`¨Ï¥Î¦b¦³¦@¦Pªº¤å¥ó¼ÐÀY¤Îª©Åv«Å§i¡F¦Ó°ÊºA¸ü¤J«h¥i¥H¥Î¦b²Î¤@ªº®Ø¬[­¶¡A¦Ó¶i¤@¨B¹F¨ì¦p Winamp ¯ë¥i´« Skin ¡C·íµM³o¨âºØ§Ú­Ì¤]¥i¥H²V¥Î¡Aµøª¬ªp¦Ó©w¡C

      §Ú­Ì¨Ó¬Ý¬Ý¤U­±³o­Ó¨Ò¤l¡G

      test5.php:
      <?php
          require "main.php";
          $tpl->assign("title", "Include ´ú¸Õ");
          $tpl->assign("content", "³o¬O¼Ëª© 2 ¤¤ªºÅܼÆ");
          $tpl->assign("dyn_page", "test5_3.htm");
          $tpl->display('test5_1.htm');
      ?>

      ¼Ëª© 1 ªº¼gªk¦p¤U¡G

      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="¦Û­qÅܼƪº¤º®e"}>
      </body>
      </html>

      ¼Ëª© 2 ªº¼gªk¦p¤U¡G

      templates/test5_2.htm:
      <{$content}>

      ¼Ëª© 3 ªº¼gªk¦p¤U¡G

      templates/test5_3.htm:
      ³o¬O¼Ëª© 3 ªº¤º®e

      ¼Ëª© 4 ªº¼gªk¦p¤U¡G

      templates/test5_4.htm:
      <{$custom_var}>

      ³o¸Ìª`·N´X­Ó­«ÂI¡G1. ¼Ëª©ªº¦ì¸m³£¬O¥H¥ý«e©w¸qªº template_dir ¬°°ò·Ç¡F2. ©Ò¦³ include ¶i¨Óªº¤l¼Ëª©¤¤¡A¨äÅܼƤ]·|³Q¸ÑĶ¡C¡F3. include ¤¤¥i¥H¥Î¡uÅܼƦWºÙ=ÅܼƤº®e¡v¨Ó«ü©w¤Þ§t¶i¨Óªº¼Ëª©¤¤©Ò¥]§tªºÅܼơA¦p¦P¤W­±¼Ëª© 4 ªº°µªk¡C