Smarty模版引擎 获取各种数据分配给tpl模版文件

一、从php文件中获取各种数据分配给tpl模版文件
建立index.php 文件 代码如下:
<?php
   include_once("libs/Smarty.class.php");   // 包含smarty类文件
   $smarty=new Smarty();   // 建立smarty实例对象$smarty
   
   
   /*
   $smarty->caching=false;  // 是否使用缓存
   $smarty->template_dir="./templates/";  // 设置模版目录
   $smarty->compile_dir="./templates_c/";  //设置编译目录
   $smarty->cache_dir="./smarty_cache/";  // 缓存文件夹
   */
   //  设置作用边界符  默认是{  }  一般用<{ }>
   $smarty->left_delimiter="<{";
   $smarty->right_delimiter="}>";
   
   $smarty->assign("aa","hello");
   $smarty->assign("bb",567);
   $smarty->assign("cc",56.7);
   $smarty->assign("dd",true);
   
   // 1.一维数组的索引数组
   $arr1 = array('北京','上海','天津');
   //2.一维数组的关联数组
   $arr2 = array('city1'=>'北京','city2'=>'上海','city3'=>'天津');
   //3.二维数组的索引数组
   $arr3 = array(array('北京','上海','天津'),array('1111','2222','3333'));
   //4.二维数组的关联数组
   $arr4 = array(array('city1'=>'北京','city2'=>'上海','city3'=>'天津'),array('name'=>'xiao','age'=>60,'city'=>'天津'));
   
   $arr5 = array('emp1'=>array('name1'=>'xiao1','age1'=>601,'city1'=>'天津1'),'emp2'=>array('name2'=>'xiao2','age2'=>602,'city2'=>'天津2'));
   
   $smarty->assign("arr1",$arr1);
   $smarty->assign("arr2",$arr2);
   $smarty->assign("arr3",$arr3);
   $smarty->assign("arr4",$arr4);
   $smarty->assign("arr5",$arr5);
   
   // *********对象的分配***********
   class Master{
   var $name;
   var $add;
    }
$master=new Master();
$master->name="xiaoming";
$master->add="1111111";
   
   
   class Dog{
   var $name;
   var $age;
   var $color;
   var $arr;
   var $master;
   function __construct($name,$age,$color,$arr){
   $this->name=$name;    
   $this->age=$age;
   $this->color=$color;
   $this->arr=$arr;
   }
    }
$dog1 = new Dog("小明",5,"红色",$arr1);
$dog1->master=$master;
    $smarty->assign("dog1",$dog1);
   
   $smarty->display("hello.tpl");
     
?>

建立模版文件 hello.tpl 代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<h1>显示数据</h1>
<hr />
<br />*************取字符串**************<br />
<{$aa}>
<hr />
<br />*************取整数**************<br />
<{$bb}>
<hr />
<br />*************取小数**************<br />
<{$cc}>
<hr />
<br />*************取bool**************<br />
<{$dd}>   <{* 这里返回的是1 *}>
<hr />
<br />*************一维数组取索引数组**************<br />
<{$arr1[0]}>
<hr />
<br />*************一维数组取关联数组**************<br />
<{$arr2.city1}>
<hr />
<br />*************二维数组取索引数组**************<br />
<{$arr3[0][0]}>
<hr />
<br />*************二维数组取关联数组**************<br />
<{$arr4[1].age}>
<br />
<{$arr5.emp1.age1}>

<hr />
<br />*************取出对象的值**************<br />
取出对象的普通属性:<{$dog1->name}> <br />
取出对象的数组属性:<{$dog1->arr[0]}><br />
<{*  取对象中的数组的和上面取数组的方法是一样的  *}>
取出对象的对象属性:<{$dog1->master->name}> <br />
</body>
</html>
二、模版直接从配置文件中取出数据
   当某个变量不希望直接写到死的程序中,可以通过配置文件来获取(常见配置样式)
例:
  在目录下建立config文件夹  此文件夹下放配置文件  建立一个my.conf 或者my.ini两张写法都行
   代码 如下:
    title = "这里是标题"
    bgcolor = "pink" 
 此时这里配置内容可以在模版中直接引用
 引用是首先加载配置文件<{config_load file='../config/my.conf'}>
<{#title#}> 这样就可以把title的内容引进来了  而且想要改变才内容至需要在配置文件中改动  不需要在模版中进行改动
三、直接在tpl模版中来访问php的保留变量
tpl模版中要取出php传过来的值 例如 http://localhost/shiyan/smarty/hello.php?username=aaa  可以直接在模版中
get使用 <{$smarty.get.username}>
post使用 <{$smarty.post.username}>
server使用 <{$smarty.server.SERVER_NAME}>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值