一、从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的保留变量
get使用
<{$smarty.get.username}>
post使用
<{$smarty.post.username}>
server使用
<{$smarty.server.SERVER_NAME}>