php的smarty模版学习小结

今天刚刚把php的smarty模版简单的学习了,发现smarty真的很好用,也明白了为什么大多数cms系统都有个templates文件夹,也大概的知道了smarty的作用,在网上发现了一篇非常不错的总结性文章,转到这里收藏了,感谢静静的等候那美好的奉献。

smarty是一个老牌Php模板引擎,作用是程序和美工分离(还没遇到会用smarty的 美工,还是自己整合),缓存技术减轻了服务器的处理压力。smarty缓存和页面静态化都是页面缓存技术,区别是smarty缓存是临时性的,静态化是永 久性的,可以通过组合互补达到比较好的性能优化效果。而memcache是内存对象缓存系统,与前两种比不是文件级别的缓存,而是内存级别的缓存。

配置

1、在smarty官网下载最新文件包: http://www.smarty.net/,解压缩文件包放到项目目录下。

2、新建一个php文件初始化smarty配置:

include_once("Smarty/Smarty.class.php"); //包含smarty类文件

$smarty = new Smarty(); //建立smarty实例对象$smarty

$smarty->config_dir="Smarty/Config_File.class.php";  // 目录变量

$smarty->caching=false; //是否使用缓存,项目在调试期间,不建议启用缓存

$smarty->template_dir = "./templates"; //设置模板目录

$smarty->compile_dir = "./templates_c"; //设置编译目录

$smarty->cache_dir = "./smarty_cache"; //缓存文件夹

3、在使用smarty的地方引用该配置文件:

php文件

$smarty->assign("模板变量", "值(数组/变量)");

$smarty->display("模板名称");

html文件

<html>

<title>{$name}</title>

</html>

常用变量操作符

capitalize [首字母大写] 

count_characters [计算字符数] 

cat [连接字符串] 

count_paragraphs [计算段落数]

count_sentences [计算句数]

count_words [计算词数]

date_format [时间格式]

default [默认]

escape [转码]

indent[缩进]

lower[小写 ]

nl2br[换行符替换成<br />]

regex_replace[正则替换]

replace[替换]

spacify[插空]

string_format[字符串格式化]

strip[去除(多余空格)]

strip_tags[去除html标签]

truncate[截取]

upper[大写]

wordwrap[行宽约束]

变量操作符使用语法

{$name|capitalize }

内置函数

1、判断

{if $name=='ok'}

{elseif}

{else}

{/if}

2、循环

{foreach from=$name item=id}  

{$id}  

{/foreach}

  
    或  

{foreach key=j item=v from=$name }  

{$j}: {$v}  

{/foreach}

注:多维数组用section

3、包含

{include file="header.htm"}

4、冲突处理

{literal}  

     <script language=javascript>  

     </script>  

{/literal}

literal数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的 javascript 脚本。另外,strip标记处理数据的首尾空格和回车,可以避免一些浏览器兼容性问题。

smarty缓存的配置

$smarty->cache_dir = "/caches/";  //缓存目录  

$smarty->caching = true;  //开启缓存,为false的时侯缓存无效  

$smarty->cache_lifetime = 60;  //缓存时间

清除缓存

$smarty->display('cache.tpl', cache_id);  //创建带ID的缓存  

$smarty->clear_all_cache(); //清除所有缓存  

$smarty->clear_cache('index.htm'); //清除index.htm的缓存  

$smarty->clear_cache('index.htm',cache_id); //清除指定id的缓存

什么是带ID的缓存,就是同一个模板页面会显示不同的内容,需要用id区别开来,生成不同的缓存文件。

局部缓存

index.php

function insert_get_time(){

      return date("Y-m-d H:m:s");

}
index.htm

<div>{insert name="get_time"}</div>



{blockname}

没有缓存的:{$smarty.now}

{/blockname}

暂时有一个地方还不太明白,$smarty->config_dir="Smarty/Config_File.class.php",这一行代码的配置是什么意思,首先我在smarty里面也找不到Config_File.class.php文件,其次,我换成$smarty->config_dir="Smarty/configs/"程序仍然可以执行。

本文标题:php的smarty模版学习小结

本文链接:http://yedward.net/?id=27

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章