1 .include_once语句:

引用文件路径,路径必需正确。   eg:include_once("smarty/Smarty.class.php");

2 $smarty=new Smarty();

新建一个对象smarty, 实例化一个对象。

3 $smarty->template_dir=“”;

指定$smarty对象使用的tpl模板的路径,它是一个目录,默认目录为当前的templates的目录,实际编程中,可能要指定目录。

4 $smarty->compile_dir=””;

指定$smarty对象的编译时的目录,就是smarty编译模板的目录,linux服务器,请你确认有可写可读权限。通常chmod -R 777 filename 修改权限,默认情况下它编译目录是当前的目录下的templates_c。

5 $smarty->left_delimiter 与 $smarty->right_delimiter;

查找模板变量左右的分割符,默认情况下为{ } 为了与script中括号相区别,通常写为<{ }>.

6 $tp1->cache_dir=”./”;

模板文件缓存的位置,Smarty最大的优点在于可以缓存,这里设置缓存的目录,默认情况下当前目录下的cache目录,同上,linux确保它的可读可写性。

7 $smarty->cache-lifetime=60*60*24;

这里以秒为单位计算缓存有效的时间,第一次缓存时间到期时Smarty的caching变量设置为true时缓存将被重建。-1表示建立缓存从不过期,为0时表示每次程度执行时缓存被重新建立,上述一天。

8 $smarty->catching=true;

缓存方式三个状态。0:Smarty'默认值,表示不对模板进行缓存。1:Smarty使用cache_lifetime来决定是否结束。2:表示Smarty将使用cache被建立时使用cache_lifetime这个值,习惯上用true和false来表示是否进行缓存。

Smarty常用语法

1.foreach : 循环简单数组,它是一个选择性的section循环.

form指定循环的数组变量,item循环变量的名称,循环次数由from指定数组变量的个数决定。

数组为空,执行<{foreachelse}>语句.格式如下:

<{foreach from=$newsArray item=newID}>

The Id:<{$newsID.newsID}>

The Content:<{$newsID.newsTitle}>

<{foreachelse}>

No content to put

<{/foreach}>

2.section: 用于设计模板内的循环块。可完成foreach语句所完成所有的功能。Section的格式:

<{section loop= $varName[,start=$start,step=$setp,max=$max,$show=true]}>

name: section的名称,不用加$;

$loop: 要循环的变量,程度中要使用assign对这个变量进行操作。

$start: 开始循环的下标。默认为0;

$step: 每次循环下标的增数;

$show : boolean型。决定是否对于这块进行显示。默认为true;

<{section}>的属性;

index:循环下标。默认为0;

index_prev:当前下标的上一个值,默认为-1;

index_next:当前下标的下一个值,默认为1;

first:是否为第一下循环;

last:是否为最后一个循环;

iteration:循环个数;

rownum:当前行号,iteration的别名;

loop:最后一个循环号。Section的循环次数;

show:是否显示;

<{section loop=$News}>

新闻编号:<{$News[loop].newID}><br>

新闻内容:<{$News[loop].newTitle}><br>

<{sectionelse}>

I am sorry

<{/section}>

对于一维数组:

{section name=row loop=$list}

{$list.name}

{/section}

对于二维数组:

{section name=row loop=$list}

{$list[row].name}

{/section}

另外还可以直接单一输出:

< { $commendList.0.infoType } >

< { $commendList.1.infoType } >

对于三维数组:

<{section name=cate loop=$myarray}>

<{section name=scate loop=$myarray[cate]}>

id ------> <{$myarray[cate][scate].id}>

title --------> <{$myarray[cate][scate].title}>

url ----------> <{$myarray[cate][scate].url}>

<{/section}>

<{/section}>

3.if用法:

{if $list[row].name eq “1"}

星期1

{elseif $list[row].name==“2"}

星期2

{else}

默认

{/if}

4.{ include file=a.template}

<{include file=uhead.html}>

5.Literal

标签区域内的数据将被当作文本处理,此时模板将忽略其

内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信

息的 javascript 脚本.

<literal>

<script>

alert('js');

</script>

<literal>

6.assign

用于在模板被执行时为模板变量赋值.

{assign var="name" value="Bob"}

$smarty->assign("newsArray", $array);

//编译并显示位于./templates下的index.tpl模板

$smarty->display("example6.tpl");

Smarty常用函数

count_characters 计算变量里的字符数 {$articleTitle|count_characters}

cat 将cat里的值连接到给定的变量后面. {$articleTitle|cat:" yesterday."}

count_paragraphs计算变量里的段落数量。 {$articleTitle|count_paragraphs}

count_sentences 计算变量里句子的数量。{$articleTitle|count_sentences}

count_words 计算变量里的词数 。{$articleTitle|count_words}

date_format格式化从函数strftime()获得的时间和日期。 {$yesterday|date_format:"%H:%M:%S"}

default 为空变量设置一个默认值{$articleTitle|default:"no title"}

escape 用于html等转码

index.tpl:

{$articleTitle}

{$articleTitle|escape}

{$articleTitle|escape:"html"} {* escapes & " ' < > *}

{$articleTitle|escape:"htmlall"} {* escapes ALL html entities *}

{$articleTitle|escape:"url"}

{$articleTitle|escape:"quotes"}

<a href="mailto:{$EmailAddress|escape:"hex"}">{$EmailAddress|escape:"hexentity"}</a>

OUTPUT:

'Stiff Opposition Expected to Casketless Funeral Plan'

'Stiff Opposition Expected to Casketless Funeral Plan'

'Stiff Opposition Expected to Casketless Funeral Plan'

'Stiff Opposition Expected to Casketless Funeral Plan'

%27Stiff+Opposition+Expected+to+Casketless+Funeral+Plan%27

\'Stiff Opposition Expected to Casketless Funeral Plan\'

<a href="mailto:%62%6f%62%40%6d%65%2e%6e%65%74">bob@me.net</a>

indent 在每行缩进字符串,默认是4个字符{$articleTitle|indent:1:"\t"}

lower 小写{$articleTitle|lower}

nl2br

regex_replace {$articleTitle|regex_replace:"/[\r\t\n]/":" "}

replace {$articleTitle|replace:"被替换":"Vineyard"}

spacify 每个字符间插入字符{$articleTitle|spacify:"^^"}

string_format格式化字符串 {$number|string_format:"%.2f"}

strip 用一个空格或一个给定字符替换所有重复空格,换行和制表符. {$articleTitle|strip:"&nbsp;"}

strip_tags 去除<和>标签,包括在<和>之间的任何内容.{$articleTitle|strip_tags}

truncate

upper 大写

wordwrap以指定段落的宽度,默认80.第二个参数,可以指定在约束点使用什么字符(默认是换行符\n).{$articleTitle|wordwrap:30:"\n":true}

html_options

<select name="media_id" id="media_id">

<{html_options options=$media_id selected=$ap.media_id}>

</select>

html_radios

<{html_radios name="is_valid" options=$is_valid checked=$ap.is_valid separator=" "}>

Smarty常用函数的更多相关文章

  1. oracle常用函数及示例

    学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...

  2. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  3. [转]SQL 常用函数及示例

    原文地址:http://www.cnblogs.com/canyangfeixue/archive/2013/07/21/3203588.html --SQL 基础-->常用函数 --===== ...

  4. PHP常用函数、数组方法

    常用函数:rand(); 生成随机数rand(0,50); 范围随机数时间:time(); 取当前时间戳date("Y-m-d H:i:s"); Y:年 m:月份 d:天 H:当前 ...

  5. Oracle常用函数

    前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...

  6. Thinkcmf:页面常用函数

    Thinkcmf:页面常用函数 全站seo: 文章列表: {$site_seo_title}        <!--SEO标题--> {$site_seo_keywords}   < ...

  7. matlab进阶:常用功能的实现,常用函数的说明

    常用功能的实现 获取当前脚本所在目录 current_script_dir = fileparts(mfilename('fullpath')); % 结尾不带'/' 常用函数的说明 bsxfun m ...

  8. iOS导航控制器常用函数与navigationBar常用属性

    导航控制器常用函数触发时机 当视图控制器的View将要出现时触发 - (void)viewWillAppear:(BOOL)animated 当视图控制器的View已经出现时触发 - (void)vi ...

  9. 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册

    <zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...

随机推荐

  1. 微信小程序学习资料整理

    基础篇 官网: https://mp.weixin.qq.com/cgi-bin/wx 微信小程序: 小程序是一种新的开放能力,开发者可以快速地开发一个小程序.小程序可以在微信内被便捷地获取和传播,同 ...

  2. 使用crontab调度任务

    复杂的.分布式的.工作流式的调度可以通过azkaban来进行调度,除了执行调度任务之外,它还能进行定时调度.而对于简单的服务器任务,如执行一个小脚本,发送邮件等,可以使用crontab命令直接进行,在 ...

  3. java计算机二级笔记

    java.applet.AppletAppletHTMLAppletextends Appletextends AppletprintinitcalendarCalendarCalendar 日历类J ...

  4. Linux排查Java程序占用CPU很高的解决办法

    Java的工具集相当强大,学习成本也很低,处理线上问题时,jstack这个工具就比微软的windbg,好学好用很多,3步找出占用CPU很高的源所在.而windbg反人类的各种命令,实在不敢恭维. 故意 ...

  5. WPF 中的OpenFileDialog和 OpenFolderDialog

    OpenFolderDialog: using (var dialog = new System.Windows.Forms.FolderBrowserDialog() { SelectedPath ...

  6. 612.1.003 ALGS4 | Stacks and Queues

    Algorithm | Coursera - by Robert Sedgewick Type the code one by one! 不要拜读--只写最有感触的!而不是仅仅做一个笔记摘录员,那样毫 ...

  7. RollViewPager图片轮播效果开源框架的使用

    RollViewPager是一个自动轮播的Viewpager, 支持无限循环. 触摸时会暂停播放,直到结束触摸一个延迟周期以后继续播放. 看起来就像这样.指示器可以为点可以为数字还可以自定义,位置也可 ...

  8. Fiddler基础教程

    一.Fiddler的基本介绍 Fiddler的官方网站:  www.fiddler2.com Fiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料. Fiddler ...

  9. python学习手册中的一些易忘的点(第4部分)

    1.python函数高聚合低耦合1)对于输入使用参数并且对于输出使用return2)只有在真正必要的情况下使用全局变量3)不要改变可变类型的参数,除非调用者希望这样做4)每个函数都应该有一个单一的.统 ...

  10. C语言中的逗号表达式

    转载:http://www.cnblogs.com/hnrainll/archive/2011/08/03/2126660.html C语言提供一种特殊的运算符——逗号运算符.用它将两个表达式连接起来 ...