一、注释

*注释内容*

Html注释显示客户端源文件中

Smarty注释不会发给客户端

Smarty的注释主要给模板设计者来看的

二、模板中的变量

l  由php文件分配

1)  普通变量

2)  数组变量

3)  对象变量

程序代码:

模板代码:

1  由配置文件分配

配置文件:

模板代码:

2  在模板文件中创建

三、变量调节器

变量调节器主要是对变量进行格式化。

语法:

{$var|调节器:参数1:参数2:……}

l  {$var|capitalize}  :首字母大写

l  {$var|count_characters:true} :计算字符串长度   true:计算空格   默认:false

l  {$var|cat:var2} :连接字符串

l  {$var|count_paragraphs} :计算段落数

l  {$var|count_sentences} :计算句数

l  {$var|count_words} :计算单词数

l  {$var|date_format:”%H%M%S”} :格式化时间

l  {$var|default:”value”} :默认值

l  {$var|escape} :转码

l  {$var|indent:10:”*”} :缩进

l  {$var|lower} :小写

l  {$var|nl2br} :将文件换行符转成网页换行符

l  {$var|regex_replace:”/[\t\n]/”:” “} :正则替换

l  {$var|replace:”aa”:”bb”}  :字符串替换

l  {$var|spacify:”^^”} :插空

l  {$var|string_format:”%d”}   :字符串格式化

l  {$var|strip}  :去除连续空格

l  {$var|strip_tags} :去除html标记

l  {$var|truncate:30:”…”} :截止字符串

l  {$var|upper} :转换为大写

l  {$var|wordwrap:30:”\n”}  :行宽约束

变量调节器的组合使用

{$var|capitalize|truncate:30:”…”|replace:”aa”:”bb”}

1)  将$var变量首字母大写

2)  再从$var中截取30个字符串

3)  再把截取之后的内容中的aa替换成bb

四 Smarty函数---插件

1)  内建函数                   sysplugins              不允许修改

2)  自定义函数                   plugins                  可以修改

1、capture             捕获一段内容,但不输出

语法:

{capture name=‘var’}

内容

{/capture}

Name:将内容保存到指定的变量中

{$smarty.capture.var}

在模板中,需要反复输出的大量内容,可以考虑使用capture捕获。

2、config_load             加载配置文件

{config_load file=“file”section=“section”}

file:配置文件名称

section:引用哪个配置节 可选参数

引用语法:

{#var#}

{$smarty.config.var}

3、foreach,foreachelse          用于遍历数组

语法:

{foreach from=数组 key=键 name=名称 item=内容 }
{foreachelse} 当要遍历的数组没有任何元素时,执行foreachelse后面的语句
{/forech}
From:要遍历的数组
Item:遍历到的键值
Key:遍历到的键名
Name:为foreach语句命名
Foreach内置变量
$smarty.foreach.name.index :索引 从0开始
$smarty.foreach.name.iteration :索引 从1开始
$smarty.foreach.name.first :当第一次执行循环时,该值为true
$smarty.foreach.name.last :当最后一次执行循环时,该值为true
$smarty.foreach.name.total :循环总数

4、include  引用另一个模板文件

{include file=“file” assign=“var” [var ...]}

File:要引入的模板文件

Assign:将结果保存,但本次不输出

[var …] :可选参数,为模板文件传参

5、include_php         包含一个php文件

{ include_php file=“file” assign=“var”      once=“true|false”}

File:要引入的php文件

Assign:保存输出结果,但本次不输出

Once:是否只包含一次   true:是     false:否

这个函数在smarty2.6中是可用的,但在3.0中将这个函数移除,如果还想使用这个函数,可以引用SmartyBC.class.php这个类文件

6、insert     在模板中,执行一个php函数

语法:

{ insert name=“func”   [var ...] }

Name :被调用的php函数名

[var ...] :调用函数时指定参数  可选参数

Insert和include_php是同样的。都是2.6中的函数,在3.0中,将这个功能放到SmartyBC.class.php这个文件中了。

注意:inser引用的php函数的名称必须以insert_为前缀

7、if elseif else

{if}

{elseif}

{else}

{/if}

8、ldelim 、rdelim   模板中的 { }  的转义符

{ldelim}

{rdelim}

9、literal   literal标记中间的内容不会被smarty所解析

{literal}

……

{/literal}

10、php    可以在一对php标记中写php代码

{php}

……

{/php}

php—Smarty-2的更多相关文章

  1. Smarty的基本使用与总结

    含义: Smarty是PHP的一个引擎模板,可以更好的进行逻辑与显示的分离,即我们常说的MVC,这个引擎的作用就是将C分离出来. 环境需求:PHP5.2或者更高版本 我使用的环境是:PHP5.3,wi ...

  2. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

  3. smarty使用

    smarty-牛刀小试 smarty 初识 官网 http://www.smarty.net/ Smarty is a template engine for PHP(PHP模板引擎) smarty使 ...

  4. Smarty模版引擎的原理

    Smarty是一个使用php写出来的模版引擎,用来将原本与html代码混杂在一起PHP代码逻辑分离,实现前后端分离. Smarty模板优点: 1. 速度:采用Smarty编写的程序可以获得最大速度的提 ...

  5. 12月15日下午Smarty模板函数

    1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}> ...

  6. 12月15日smarty模板基本语法

    smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...

  7. 12月13日上午Smarty模版原理

    模板主要是用来让前端和后端分离的,前台页面只是一个前台页面,后台页面用php代码写逻辑,写完逻辑拿到前台显示. 一.写法 一般需要以下:写3个页面: 1.显示页面aa.html <!DOCTYP ...

  8. SMARTY模板中如何使用get,post,request,cookies,session,server变量

    {$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中 ...

  9. 在新浪云SAE中使用smarty引擎模版

    在新浪云上使用smarty时会发现又这样的错误信息: “SAE_Fatal_error: Uncaught exception 'SmartyException' with message 'unab ...

  10. MVC架构学习之Smarty学习——病来而蔫

    前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情.. 当然这次是有小病在身,多个借口吧. 一有病就蔫的不行...要锻炼了啊,脚估计也差不多了,游泳试试吧这周. 这次学习Smarty ...

随机推荐

  1. 10 MySQL--权限管理

    权限管理 1.创建账号 # 本地账号 create user '; # mysql -uegon1 -p123 # 远程帐号 create user '; # mysql -uegon2 -p123 ...

  2. 8.3.2018 1 Quick and dirty 快而脏的快餐

    Quick and dirty  快而脏的快餐 BEIJING  北京 Food delivery is a booming business. Waste is piling up, too  送餐 ...

  3. docker国内registry

    cat /etc/docker/daemon.json {"registry-mirrors": ["http://4d6b2eb7.m.daocloud.io" ...

  4. LevelDb日知录之五:MemTable详解

    [LevelDb日知录之五:MemTable详解] LevelDb日知录前述小节大致讲述了磁盘文件相关的重要静态结构,本小节讲述内存中的数据结构Memtable,Memtable在整个体系中的重要地位 ...

  5. Go Packages、Variables、functions

    [Go Packages.Variables.functions] 1.定义包名. 2.引入Package. 3.定义导出的变量.首字母必须大写. 4.函数.Notice that the type ...

  6. 127. Word Ladder (Tree, Queue; WFS)

    Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest t ...

  7. git 本地忽略某些个文件

    git update-index --assume-unchanged <要忽略的文件> git update-index --no-assume-unchanged <要取消忽略的 ...

  8. 关于Yii2.0的url路径优化问题(配置虚拟路径)

    backend/config/main.php 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => fa ...

  9. python类和元类

    python 类和元类详解  小麦麦子 2016-09-06 11:11:00        今天在网上看到一篇关于python语言中类和元类(metaclass)的一些讲解和简单运用,感觉对pyth ...

  10. c++ stringstream的使用

    stringstream ss;//一次创建多次使用,需要进行clear()操作清除流状态标记 int i=0; while (i<3) { ss<<"21"; ...