下载:
https://www.smarty.net/download
类比:
与下载jquery差不多
怎么用
1.解压如图所示
2打开解压文件
图2
3新建templates和templates_c文件夹如图所示
4 新建一个index.php文件如下:
<?php
define('ROOT_PATH',dirname(__FILE__));
//引入smarty
require ROOT_PATH.'/smarty/Smarty.class.php';
//实例化对象
$smarty=new Smarty();
//设置相关属性
$smarty->template_dir='templates';
$smarty->compile_dir='templates_c';
//分配数据
$smarty->assign('title','华罗庚');
$smarty->assign('content','聪明在于勤奋,天才在于积累');
$smarty->assign('str',array('php','mysql','js','css','xhtml'));
$smarty->assign('user',array(
'id'=>1,
'name'=>'李寻欢',
'nickname'=>'小李飞刀'
));
//定义常量
define("ROOT",getcwd());
//if..else的用法
$smarty->assign('iq',80);
//内置函数
//foreach的用法
$arr = array('red', 'green', 'blue');
$smarty->assign('myColors', $arr);
//二维数组的用法
$use=array(
array('id'=>1,'name'=>'黄药师','nickname'=>'东邪','gongfu'=>'一阳指'),
array('id'=>2,'name'=>'欧阳锋','nickname'=>'西毒','gongfu'=>'九阳真经'),
array('id'=>3,'name'=>'洪七公','nickname'=>'北丐','gongfu'=>'降龙十八掌'),
array('id'=>4,'name'=>'一灯大师','nickname'=>'南帝','gongfu'=>'一阳指'),
);
$smarty->assign('use',$use);
//多维数组通过item 和 key来嵌套使用{foreach}:多维数组的键一般会对应另一个数组。
$smarty->assign('contacts', array(
array('phone' => '15213282307',
'name' => '周行知',
'email' => 'zhouxingzhihao123@qq.com'),
array('phone' => '15802568455',
'name' => '周洪海',
'email' => '2371236399@qq.com')
));
//@index index是当前数组索引,从0开始计算。
//载入模板
$smarty->display('index_demo1.html');
?>
5.写入index_demo1.html(注:在 templates 目录中写入)
<!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 charset="utf-8">
<title>{$title}</title>
{literal} <style>
h1{
color:red;
font-size:60px;
}
.odd{background:red;}
.red{
color:red;}
</style>
{/literal}
</head>
<body>
<h1>{$title}</h1>
<p>{$content}</p>
<hr/>
时间:{$smarty.now}
<hr/>
版本号:{$smarty.version}
<hr/>
服务器:{$smarty.server.SERVER_NAME}
<hr/>
常量:{$smarty.const.ROOT}
<hr/>
smarty的内置函数:
<ul>
{foreach $myColors as $color}
{if $color@index eq 1}
<!--index是当前数组索引,从0开始计算 -->
<li class="red">{$color}</li>
{else}
<li>{$color}</li>
{/if}
{/foreach}
</ul>
<hr/>
<h1>foreach用法</h1>
<table width="600" border="1">
<tr >
<th>编号</th>
<th>姓名</th>
<th>绰号</th>
<th>武功</th>
</tr>
{foreach $use as $k =>$v}
<!--smarty奇数换色的用法-->
<tr {if $k is odd} class="odd" {/if}>
<td>{$v.id}</td>
<td>{$v.name}</td>
<td>{$v.nickname}</td>
<td>{$v.gongfu}</td>
</tr>
{/foreach}
</table>
<hr/>
<h1>多维数组通过item 和 key来嵌套使用</h1>
<ul>
{foreach $contacts as $contact}
{foreach $contact as $key=>$value}
<li>
{$key}: {$value}
</li>
{/foreach}
{/foreach}
</ul>
<hr/>
<h2>if...else的用法</h2>
<p>你的智商指数是{$iq}</p>
<p>
最适合你的武功:
{if $iq<=100&&$iq>90}
反推法
{elseif $iq<=90&&$iq>80}
归谬法
{elseif $iq<=80&&$iq>70}
中间量法
{elseif $iq<=70&&$iq>60}
分类试错法
{else}
联想
{/if}
</p>
<hr/>
<ul>
<li>{$str[0]}</li>
<li>{$str[1]}</li>
<li>{$str[2]}</li>
<li>{$str[3]}</li>
</ul>
<hr/>
<ul>
<li>{$user.id}</li>
<li>{$user.name}</li>
<li>{$user.nickname}</li>
</ul>
<table>
{foreach $items as $i}
{if $i@index eq 3}
{* put empty table row *}
<tr><td>nbsp;</td></tr>
{/if}
<tr><td>{$i.label}</td></tr>
{/foreach}
</table>
</body>
</html>
输出结果如下