现在smarty程序包 libs文件夹就是主要的程序文件
新建index.php
require './libs/Smarty.class.php';
$smarty = new Smarty;
$smarty->debugging = true; //调试....
需要templates,templates,configs,cache 4个文件夹的默认是index.php同目录 可以在程序里自己定义
$smarty->template_dir = './demo/templates/'; //设置模板目录
$smarty->compile_dir = './demo/templates_c/'; //设置模板缓存目录
$smarty->config_dir = './demo/configs/'; //设置配置文件目录
$smarty->cache_dir = './demo/cache/'; //设置缓存目录
$smarty->setCaching(true); //开启缓存
//$smarty->getCaching();// 获取当前缓存状态,默认是false关闭的
$smarty->setcache_lifetime(3600);//设置缓存时间单位秒
$smarty->setForce_compile(true);//默认为false,true表示每次都重新编译(启用缓存的话,每次都重新缓存)
//$smarty->getForce_compile();//获得当前强制编译的设置
$smarty->right_delimiter = "}";
$smarty->assign('name','Ned'); //赋值
$smarty->display('2.tpl'); //输出页面
// $smarty->is_cached("index.tpl"); 返回值 是该模板是否有缓存
// $output = $smarty->fetch("2.tpl"); 返回模板值
// $smarty->clear_all_cache();//清除所有缓存
// $smarty->clear_cache('2.tpl'); //清楚单页面缓存
模板里的注释 {* 这里是注释 *}
多文件缓存
$smarty->caching = true;
$smarty->cache_lifetime = 120;
$smarty->assign('id',$_GET[id]);
$smarty->display('page.tpl',$_GET[id]);
模板
{literal} {/literal} 忽略处理
{include file="header.tpl"} 包含文件
{insert name="getBanner" lid='abc' sid='bcd'} 插入函数 执行insert_getBanner(array('lid=>''abc','sid'=>'bcd'))
function insert_getBanner($i){
return $i['lid']."---".$i['sid'];
}
模板包含模板也可以是这样格式
{include file="header.tpl" testVar="这是顶部内容!!!"}
header.tpl则可以通过{$testVar}使用调用页包含时传来的模板变量
header.tpl内容:
<span>{$testVar},欢迎你,{$name}</span><hr />
引入配置文件
{config_load file="test.conf"}<br>
<h1>{#title#}</h1> 或者 {$smarty.config.nr}
test.conf
title = "Welcome to Smarty!"
---------------------------------------
{$name|upper} 大写
{$name|capitalize} 所有单词首字母大写
{$name|lower} 小写
{$name|lower|truncate:10} 组合方式 坐到右 小写 截取字符串多出的显示...
模板里赋值
{assign var="china" value="Boboo"}
The value of $name is {$china}.