php Smarty

php

2015-04-20 16:52

现在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->left_delimiter = "{";   //左分界符,2.0属性,3.0沿用

$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}.