smarty模板入门大纲 联系客服

发布时间 : 星期一 文章smarty模板入门大纲更新完毕开始阅读7d64902a453610661ed9f44e

$smarty->template_dir = \设置模板目录 $smarty->compile_dir = \设置编译目录

//---------------------------------------------------- //左右边界符,默认为{},但实际应用当中容易与JavaScript //相冲突,所以建议设成<{}>或其它。

//---------------------------------------------------- $smarty->left_delimiter = \ $smarty->right_delimiter = \

$smarty->assign(\\name is zhangyu.\//将str1替换成My Name Is Zhangyu. $smarty->assign(\我的名字叫:\输出: 我的名字叫:张瑜

$smarty->assign(\公元\输出公元2004年8月21日(我的当前时间) //$smarty->assign(\\//第四句不处理时会显示默认值,如果使用前面这一句则替换为\

$smarty->assign(\前边8个*\第五句输出:********前边8个*

$smarty->assign(\这里将输出jaddy@onceplay.com $smarty->assign(\在模板中显示为:this is 张瑜 $smarty->assign(\

//编译并显示位于./templates下的index.html模板 $smarty->display(\ ?>

最终输出效果:

smarty的模板调节器示例

1. 第一句首字母要大写:My Name Is Zhangyu.
2. 第二句模板变量 + 张瑜:我的名字叫:张瑜
3. 第三句输出当前日期:公元2004年8月21日

4. 第四句.php程序中不处理,它显示默认值:没有值!

5。第五句要让它缩进8个空白字母位,并使用\取替这8个空白字符:
********前边8个*

6. 第六句把JaDDy@oNCePlAY.CoM全部变为小写:jaddy@onceplay.com
7. 第七句把变量中的teacherzhang替换成:张瑜:this is 张瑜

8. 第八句为组合使用变量修改器:Here is Combining:这里是新加的时间:2004年8月21日

下面是一些变量调节器的列表,具体使用大家可以查阅Smarty手册。

capitalize首字大写 count_characters 计算变量里的字符数 cat 将cat里的值连接到给定的变量后面 count_paragraphs 计算变量里的段落数量 count_sentences 计算变量里句子的数量 count_words 计算变量里的词数 date_format 格式化日期 default 默认值 escape 用于html

转码,url转码 indent 缩进 lower 将变量字符串小写 nl2br 所有的换行符将被替换成
regex_replace 寻找和替换正则表达式 replace 简单的搜索和替换字符串 spacify 在字符串的每个字符之间插入空格或者其他的字符(串) string_format 字符串格式化 strip 用一个空格或一个给定字符替换所有重复空格,换行和制表符 strip_tags 去除<和>标签,包括在<和>之间的任何内容 truncate 从字符串开始处截取某长度的字符.默认是80个 upper 将变量改为大写 wordwrap 可以指定段落的宽度(也就是多少个字符一行,超过这个字符数换行)。默认80

另外大家也可以查看smarty/plugins目录中以modifier开头的文件,它们其实就是这些变量调节器的源代码。

Smarty模板进阶教程(二)

上一篇教程我们学习了变量调节器,这一节我们来看一些Smarty内定的函数。

首先我们通过一个例子来学习一个很重要的内定函数:模板控制(if / elseif / else/ endif )

通常我们在使用表格进行多行数据输出时,会考虑一行隔一行的设置不同的行背景色,下面我们就来用if实现:

模板中的流程控制

{assign var=\色彩:{$tbColor}

{section name=loop loop=$News} {if $tbColor == \

{assign var=\ {else $tbColor == \

{assign var=\ {/if}

{/section}

{$News[loop].newsID} {$News[loop].newsTitle}

第二步是设计php脚本:

require_once (\ $smarty = new Smarty();

$smarty->template_dir = './templates/';

$smarty->compile_dir = './templates_c/'; $smarty->config_dir = './configs/'; $smarty->cache_dir = './cache/'; $smarty->caching = false;

$array[]= array(\第1条新闻\ $array[]= array(\第2条新闻\ $array[]= array(\第3条新闻\ $array[]= array(\第4条新闻\ $array[]= array(\第5条新闻\ $array[]= array(\第6条新闻\ $array[]= array(\第7条新闻\ $array[]= array(\第8条新闻\

$smarty->assign(\

$smarty->display(\ ?>

最终输出效果就成为:

模板中的流程控制

001

002

003

004

005

006

007

008

第1条新闻
第2条新闻
第3条新闻
第4条新闻
第5条新闻
第6条新闻
第7条新闻
第8条新闻

这个例子先使用{assign var=\来设置一个内部变量,然后通过 {if $tbColor == \

{assign var=\{else $tbColor == \

{assign var=\ {/if}

来判断并改变变量值来交替表格的背景色。

此例子只为演示if的使用,实际上这个功能可以使用cycle来更简单地实现,代码如下: {section name=loop loop=$News}

{$News[loop].newsID} {$News[loop].newsTitle}

{/section}

下面我们使用模板内置流程控制语句来进行一行多个单元格内容的输出,也就是表格的每行输出多条记录:

一行输出多条记录

{section name=loop loop=$News step=1} {if $smarty.section.loop.index % 4 == 0}