文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Smarty入门

Smarty入门

时间:2007-06-27  来源:vivin

一、安装
   
   
http://smarty.php.net/download.php
下载,解压

1.在你的“localhoat”目录下建立新的目录learn/,在learn下建立目录
  smarty/,将刚才解压出来的目录的libs/拷贝到smarty/里,再在smarty/
  里新建templates目录,templates里新建cache/,templates/,templates_c/,
  config/,如下图所示
  
  --learn
     --smarty
        --libs
            --internals
            --plugins
        --templates
            --cache
            --configs
            --templates
            --templates_c

2.新建一个模板文件:index.tpl 将此文件放在learn/smarty/templates/templates
   目录下,代码如下:

Transitional//EN""
http://www.w3.org/TR/html4/loose.dtd
">
      

  
                   content="text/html";charset="ge2312">
  Smarty


  {$hello}


新建index.php 将此文件放在learn/下

  //引用类文件
  require("smart/libs/Smarty.class.php");
  $smarty=new Smarty;
  
  //设置各个目录的路径,这是安装的重点
  $smarty->template_dir="smarty/templates/templates";
  $smarty->compile_dir="smarty/templates/templates_c";
  $smarty->config_dir="smarty/templates/config";
  $smarty->cache_dir="smarty/templates/cache";
  
  //smarty模板具有高速缓存的功能,如果这里是true的话即打开caching,
  //但是会造成网页不会立即更新的问题,当然也可以通过其它的办法解决
  $smarty->caching=false;

  $hello="hello,world";
  $smarty->assign("hello",$hello);//对类模板中的变量赋值
  $smarty->display("index.tpl");//加载类模板
?>

注:Smarty.class.php文件定义了类$Smarty及几个常量。

3.执行index.php 就能在页面上输出"hello,world"

二、赋值
  在模板文件中替换的变量用“{ }”括起来,值的前面还要加“$”号,如
{$hello},这里可以是数组,如下:

*.tpl
Hello,{$exp.name}!Good {$exp.time}

*.php
$hello['name']="Mr.Green";
$hello['time']="morning";
$smarty->assign("exp",$hello);

OUTPUT:Hello,Mr.Green!Good moring

三、引用
  网站中的网页,一般header和footer是可以共用的,所以只要在每个tpl中引用它们即可,例:

  *.tpl
  {include file="header.tpl"}
  {* body of template goes here *}
  {include file="footer.tpl"}
四、判断
  模板文件可以使用if else等判断语句,即可以将一些逻辑程序放在模块中,
"eq","ne","neq","gt","lt","lte","le","gte" "ge","is even","is odd","is not even","is not odd","not","mod",
"div by","even by","odd by","==","!=",">", "=",这些是if中可以用到的比较。例:

{if $name eq "Fred"} Welcome Sir.
{else if $name eq "Wilma"} Welcome Madam.
{else} Welcome,whatever you are
{/if}

注意:在“条件”没有使用“括号”括起来

五、循环

  有两种方式:
1.foreach
  例1:
  {foreach from=$custid item=curr_id}
            id: {$curr_id}
  {/foreach}
OUTPUT:
id: 1000
id: 1001
id: 1002

例2:
$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));
*}
{* 键就是数组的下标,请参看关于数组的解释 *}
{foreach name=outer item=contact from=$contacts}
{foreach key=key item=item from=$contact}
{$key}: {$item}
{/foreach}
{/foreach}
OUTPUT:
phone: 1
fax: 2
cell: 3
phone: 555-4444
fax: 555-3333
cell: 760-1234

2.section

例1:
{section name=customer loop=$custid}
        id: {$custid[customer]}
{/section}
OUTPUT:
id: 1000
id: 1001
id: 1002

注:若数组的“键”为数字,则使用“[]”;若为字符串则使用“.”
   如:$a[1].username 就指的是 $a[1]['username']

六、附
  Smarty默认的标记分隔符是“{}”,但是JavaScript肯定包含了这个标记
我们可以用任意字符作分隔符,需要加上以下两句:
  
  $smarty->left_delimiter="{/";
  $smarty->right_delimiter="/}";

还可以使用literal。literal的功能就是忽略大括号{},例:

{literal}
  
    function isblank(field)
    {
      if(field value=="") {return false;}
      else
      {
        document.loginform.submit();
        return truen;
      }  
    }
  
{/literal}

  

相关阅读 更多 +
排行榜 更多 +
jojo的奇妙冒险手机版下载

jojo的奇妙冒险手机版下载

飞行射击 下载
雪糕工厂 v9.87.13.02 安卓版

雪糕工厂 v9.87.13.02 安卓版

休闲益智 下载
雪糕工厂 v9.87.13.02 安卓版

雪糕工厂 v9.87.13.02 安卓版

休闲益智 下载