zoukankan      html  css  js  c++  java
  • Smarty模板引擎的使用

    Smarty模板引擎的使用

    Smarty是PHP中一个基于MVC模式的模板引擎。

    Download: http://www.smarty.net/download

     

    特点

    1、  最快速度的程序开发模板

    2、  自定义模板的界定符

    3、  可以使用条件判断语句if/elseif/else/endif

    4、  内建缓存支持

    5、  可以自定义插件.

     

    Smarty其实很简单,目前的3.1.14版本中的一个Demo的目录如下:



    只有简单的几个文件夹。

     

    Index.php

    <?php
     /**
     * Example Application
    
     * @package Example-application
     */
     
    //载入Smarty的核心类库文件
    require('libs/Smarty.class.php');
    //实例化一个Smarty
    $smarty = new Smarty;
    
    
    
    //$smarty->force_compile = true;
    //调试模式,会弹出调试框,查看变量值
    $smarty->debugging = true;
     //缓存模式
    $smarty->caching = true;
     //缓存时间 
    $smarty->cache_lifetime = 120;
    
    //定义一个数据的MAP,将数据发送到模板中去
    $smarty->assign("Name","Fred Irving Johnathan Bradley Peppergill",true);
    $smarty->assign("FirstName",array("John","Mary","James","Henry"));
    $smarty->assign("LastName",array("Doe","Smith","Johnson","Case"));
    $smarty->assign("Class",array(array("A","B","C","D"), array("E", "F", "G", "H"),
    	  array("I", "J", "K", "L"), array("M", "N", "O", "P")));
    
    $smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
    	  array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));
    
    $smarty->assign("option_values", array("NY","NE","KS","IA","OK","TX"));
    $smarty->assign("option_output", array("New York","Nebraska","Kansas","Iowa","Oklahoma","Texas"));
    $smarty->assign("option_selected", "NE");
    
    //显示一个模板
    $smarty->display('index.tpl');
    ?>
    




     

    使用的都是默认的各个目录文件夹,显示如资源列表图。

    当然,还有很多的参数设置,可以参考Smarty.class.php文件,不做详细介绍了。



    index.tpl 中的解析


    {*这样的是注释*}
    {* {} 是界定符 *}
    
    {*载入 配置文件 *}
    {config_load file="test.conf" section="setup"}
    
    {* 载入一个文件,并传入一个变量 title = foo *}
    {include file="header.tpl" title=foo}
    
    <PRE>
    
    {* ##是从config 文件读取的配置数据 *}
    {if #bold#}<b>{/if}
    {* 
      ‘|’ 是针对变量的修饰符,
      capitalize   首字母大写
      upper		   全部大写
      lower        全部小写
      nl2br        将换行符换位<br/>
      date_format:"%Y-%M-%D"   格式化时间
      replace:"value1":"value2" 替换,使用value2替换value1
      dafault      默认值
      cat:"characters"    追加字符
      .....
    *}
    Title: {#title#|capitalize}
    {if #bold#}</b>{/if}
    
    The current date and time is {$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
    
    The value of global assigned variable $SCRIPT_NAME is {$SCRIPT_NAME}
    
    {*
    {$smarty.server.SERVER_NAME}   服务器 地址
    *}
    Example of accessing server environment variable SERVER_NAME: {$smarty.server.SERVER_NAME}
    
    The value of {ldelim}$Name{rdelim} is <b>{$Name}</b>
    {*
    {ldelim}   左界定符
    {rdelim}   右界定符
    *}
    variable modifier example of {ldelim}$Name|upper{rdelim}
    
    <b>{$Name|upper}</b>
    
    
    An example of a section loop:
    
    {section name=outer 
    loop=$FirstName}
    {* 没两次 交替 一次*}
    {if $smarty.section.outer.index is odd by 2}
    	{$smarty.section.outer.rownum} . {$FirstName[outer]} {$LastName[outer]}
    {else}
    	{$smarty.section.outer.rownum} * {$FirstName[outer]} {$LastName[outer]}
    {/if}
    {sectionelse}
    	none
    {/section}
    
    An example of section looped key values:
    {* 类似 泛型的枚举  循环*}
    {section name=sec1 loop=$contacts}
    	phone: {$contacts[sec1].phone}<br>
    	fax: {$contacts[sec1].fax}<br>
    	cell: {$contacts[sec1].cell}<br>
    {/section}
    <p>
    
    testing strip tags
    {strip}
    <table border=0>
    	<tr>
    		<td>
    			<A HREF="{$SCRIPT_NAME}">
    			<font color="red">This is a  test     </font>
    			</A>
    		</td>
    	</tr>
    </table>
    {/strip}
    
    </PRE>
    
    This is an example of the html_select_date function:
    
    {* 时间选择器*}
    <form>
    {html_select_date start_year=1998 end_year=2010}
    </form>
    
    This is an example of the html_select_time function:
    
    <form>
    {html_select_time use_24_hours=false}
    </form>
    
    This is an example of the html_options function:
    
    {* option 枚举*}
    <form>
    <select name=states>
    {html_options values=$option_values selected=$option_selected output=$option_output}
    </select>
    </form>
    
    {include file="footer.tpl"}
    



    在服务器上显示的  index.php就显示如下了


    更多的详细介绍,查看官网http://www.smarty.net/docs/zh_CN/


  • 相关阅读:
    士兵杀死(两)(南阳116)
    Android 墙纸设置代码 详细说明
    Laravel nginx 伪静态规则
    STL源代码分析——STL算法merge合并算法
    第29周六
    第29周五
    第29周四
    第29周三
    2014第29周二
    第29周一
  • 原文地址:https://www.cnblogs.com/riskyer/p/3297363.html
Copyright © 2011-2022 走看看