Smarty模板技术讲解
smarty总结

Smarty模板技术一.Smarty的优点,作用。
实现了前台页面和后台逻辑的分离。
在比较大的项目中,将php程序员和美工设计人员分离。
二.Smarty相关知识点:1.如何使用Smarty模板,使用模板的步骤1)安装smarty(将smarty安装包中的libs文件夹拷贝到服务器目录下即可)2)引入smarty.class.php,创建smarty对象。
(初始化)3)更改相关的配置(模板、模板的编译文件、配置文件及缓存的路径,以及界定符)(将相应的模板放入指定文件夹)4)是否开启缓存,及缓存生存时间的设置。
5)为模板变量分配值(常量,变量,数组以及对象)6)显示模板。
2.创建smarty模板模板本质是html静态页面,包含html的所有实体及smarty本身的对象。
(变量,变量修改器(capitalize|default…),内建函数(if foreach section insert…))一.变量:(1).输出php分配的变量(php文件通过assign方法给模板分配变量)注意:smarty中的变量只能输出不能赋值。
普通变量:直接用变量名输出(例:$smarty->assign("title",$title); <title><{$title}></title>)●数组变量:⏹索引数组:<{$array[index] }>⏹关联数组:<{$array.key}>⏹混合数组:<{$array.key[index] }>、<{$array[index].key}> ●对象变量:<{$stu->attribute(function)}>(2).从配置文件得到相应的变量首先将配置文件写到相应的文件夹(configs文件夹)●配置文件(本质就是记事本文件(*.conf))的写法:#注释#全局变量变量名= 变量值(非字符类直接写、字符类的加’…’或”…”、大段字符包括段落标记等”””…..”””)Name = ‘张三’Age =19#局部变量[局部名称]//声明局部变量的作用域变量名= 变量值(非字符类直接写、字符类的加’…’或”…”、大段字符包括段落标记等”””…..”””)Name = ’李四’注意:局部变量的变量名一般会包含在全局变量中,如果引用时加上的作用域,那么局部变量中的同名变量将替换全局变量中的同名变量。
smarty教程

smarty教程Smarty是一个基于PHP的开源模板引擎,它提供了一种简单、可扩展的方式来分离应用程序的逻辑和展示层,使开发者能够更好地组织和管理项目。
本教程将介绍Smarty的基本用法和主要特性。
一、什么是Smarty?Smarty是一个模板引擎,它允许开发者将应用程序的逻辑和展示层进行分离。
它使用模板文件来表示页面的展示层,利用变量、循环、判断语句等标签来实现动态数据的展示。
通过将展示层和逻辑层分离,开发者可以更好地组织和维护代码,提高项目的可维护性和可扩展性。
二、Smarty的基本用法1. 安装Smarty在开始使用Smarty之前,我们首先需要将其安装到我们的项目中。
可以通过在终端中使用composer命令来安装Smarty,命令如下:```shellcomposer require smarty/smarty```2. 创建模板文件在项目中创建一个模板文件,例如index.tpl,并将展示层的内容写在模板文件中。
模板文件使用扩展名为.tpl。
3. 初始化Smarty在PHP文件中初始化Smarty对象,并设置模板目录和编译目录。
例如:```phprequire_once 'vendor/autoload.php';$smarty = new Smarty();$smarty->setTemplateDir('templates');$smarty->setCompileDir('templates_c');```4. 分配变量在PHP文件中使用assign()方法将变量分配给模板文件,例如:```php$name = 'Smarty';$smarty->assign('name', $name);```5. 渲染模板通过调用Smarty对象的display()方法来渲染模板文件并输出页面,例如:```php$smarty->display('index.tpl');```这样就完成了一个简单的Smarty模板的使用,可以在模板文件中使用{$name}来输出变量的值。
smarty模板

smarty模板引擎简介Smarty是一个开源的服务器端模板引擎,它将应用程序逻辑与表示层分离开,从而使实现MVC模式和UI设计变得更加容易。
普通的web开发过程中,服务器端编写了html页面,将数据从数据库中读取,拼接字符串输出到前端页面。
这种方式存在多个问题。
例如,前端开发者和后端开发者需要共同编写html页面,以及在修改时需要重新编写html和php代码。
另外,服务器端的逻辑和html代码耦合在一起,不便于维护和增强。
Smarty解决了这些问题。
在Smarty中,编写html和php代码是分离的,前后端开发者可以各自独立进行开发。
Smarty可以将静态的html代码和动态的php代码分离,使得代码更容易维护和扩展。
引擎的优点1.分离逻辑与显示:Smarty采用了MVC设计模式,将逻辑和显示分离开来,提高了代码的可维护性和可扩展性。
2.更好的可读性:Smarty使用模板语言,使得模板代码更容易理解和修改。
3.更方便的缓存:Smarty可以将编译后的模板缓存到文件中,从而减少页面的响应时间。
4.更方便的文件管理:Smarty的文件命名方式更加合理,易于管理和维护。
引擎的使用Smarty的使用十分简单。
以下是smarty模板文件的一个简单例子:<!DOCTYPE html><html><head><title>{$title}</title></head><body>{foreach from=$products item=product}<h1>{$}</h1><p>{$product.desc}</p><p>{$product.price}</p>{/foreach}</body></html>其中,局部变量被花括号括起来,smarty解析后输出变量对应的值。
03 smarty模板设计

修饰变量
有时不仅要取得变量值,还要对变量进行处理。变量修饰的一般格式如下: {variable_name|modifer_name: parameter1:…} variable_name为变量名称。 modifer_name为修饰变量的方法名。变量和方法之间使用符号“|”分隔。 parameter1是参数值。如果有多个参数,则使用“:”分隔开。 Smarty提供了修饰变量的方法。常用方法和说明如表所示。
arty模板文件 2、注释 3、变量 4、修饰变量 5、流程控制
支持网站:
Smarty模板文件
Smarty 模板文件是由一个页面中所有的静态元素,加上一些定界符 “{…}”组成的。模板文件统一存放的位置是templates目录。模板中不允许 出现PHP代码段。Smarty 模板中的所有注释、变量、函数等都要包含在定界 符内。
3.从配置文件中读取数据 Smarty模板也可以通过配置文件来赋值。对于PHP开发人员来说,对配置文件的使用从 安装服务器就开始了,对文件的格式也有了一个初步的了解。调用配置文件中变量的格式有以下两 种: 使用“#”号,将变量名置于两个“#”号中间,即可像普通变量一样调用配置文件内 容。 使用保留变量中的$smarty_config.来调用配置文件。
注释
Smarty中的注释和PHP注释类似,都不会显示在源代码当中。注释 包含在两个星号“*”中间,格式如下: {* 这是注释 *}
变量
Smarty中的变量来自以下3个部分: 1.PHP页面中的变量 也就是assign()方法传过来的变量。使用方法和在PHP中是一样的,也需要使用“$”符 号,略有不同的是对数组的读取。在Smarty中读取数组有两种方法:一种是通过索引获取,和PHP 中相似,可以是一维,也可以是多维;另一种是通过键值获取数组元素,这种方法的格式和以前接 触 过 的 不 太 一 样 , 其 使 用 符 号 “ .” 作 为 连 接 符 。 例 如 , 有 一 数 组 $arr = array{‘object’ => ‘book’,‘type’ => ‘computer’, ‘unit’ => ‘本’},如果要想得到type的值,则表达式的格式应为$arr.type。 这个格式同样适用于二维数组。 2.保留变量 相当于PHP中的预定义变量。在Smarty模板中使用保留变量时无须使用assign()方法传 值,而只需直接调用变量名即可。Smarty中常用的保留变量如表所示。
smarty 模板

smarty 模板Smarty 模板。
Smarty 是一种用于 PHP 的模板引擎,它提供了一种将业务逻辑和显示逻辑分离的方法,使得网页开发更加灵活和易于维护。
在本文档中,我们将介绍 Smarty 模板的基本语法和常用功能,帮助您快速上手并使用 Smarty 来构建更加优雅的网页。
1. 基本语法。
Smarty 模板以 .tpl 为扩展名,可以直接在 HTML 中嵌入 PHP 代码。
以下是一个简单的 Smarty 模板示例:```html。
<!DOCTYPE html>。
<html>。
<head>。
<title>{$title}</title>。
</head>。
<body>。
<h1>Welcome, {$name}!</h1>。
<p>Your balance is: {$balance}</p>。
</body>。
</html>。
```。
在上面的示例中,我们使用了 {$...} 的语法来输出变量,这是 Smarty 的基本语法之一。
另外,我们还可以使用 {if}{else}{/if}、{foreach} 等标签来进行条件判断和循环输出。
2. 变量赋值。
在 PHP 中,我们可以使用 $name = 'John'; 来定义一个变量。
而在 Smarty 中,我们可以使用以下语法来给变量赋值:```html。
{$name = 'John'}。
```。
这样,我们就可以在模板中直接使用 {$name} 来输出 John。
3. 条件判断。
Smarty 提供了灵活的条件判断语法,可以根据不同的条件来输出不同的内容。
以下是一个简单的示例:```html。
{if $balance > 0}。
<p>Your balance is positive.</p>。
第13章 Smarty 模板引擎

2013年6月22日
宁波大学教师教育学院 梅剑峰 Meijianfeng@
4
二、Smarty模板引擎
高度可配置和可扩展 。Smarty采用插件技术,其面向对象的架构允许 修改和扩展其默认行为 。另外,Smarty还为用户提供了很大的配置灵 活性,使用户可以比较方便地通过内置方法和属性定制Smarty的行为。
3、Smarty的配置
2013年6月22日
宁波大学教师教育学院 梅剑峰 Meijianfeng@
9
四、Smarty模板引擎的使用
1、建立模板文件 模板文件相当于表现层,一般有前台设计人员完成。这里 举一个简单的例子: example.tpl
2013年6月22日
宁波大学教师教育学院 梅剑峰 Meijianfeng@
宁波大学教师教育学院 梅剑峰 Meijianfeng@
12
模板引擎根据原理可分为:置换型、解释型、编译型。
2013年6月22日
宁波大学教师教育学院 梅剑峰 Meijianfeng@
3
二、Smarty模板引擎
Smarty是PHP半官方的模板引擎,它有以下特点: 速度快。与其他的模板引擎技术相比,采用Smarty模板引擎编写的程 序可以获得最大速度的提高。
2013年6月22日
宁波大学教师教育学院 梅剑峰 Meijianfeng@
2
一、模板引擎技术简介
模板引擎(这里特指用于Web开发的模板引擎)就是为了使用户界面 与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用 于网站的模板引擎就会生成一个标准的HTML文档。
模板引擎不仅可以让你实现代码分离(业务逻辑代码和用户界面代 码),也可以实现数据分离(动态数据与静态数据),还可以实现代 码单元共享(代码复用),甚至是多语言、动态页面与静态页面自动 均衡(SDE)等等与用户界面可能没有关系的功能,大大的提升了开 发效率。
Smarty模板技术之foreach遍历数组实例全面讲解
Smarty模板技术之foreach遍历数组实例全⾯讲解今天来介绍⼀下关于foreach的实例,加深⼤家对foreach的掌握程度。
⼀、item属性⽤法<?php$arr = array(600, 851, 7412);$smarty->assign('testarrg', $arr);>⽤Smarty中的foreach⽅法来遍历并输出这个数组<dl><dt>foreach中item属性⽤法</dt>{foreach from=$testarrg item=test}<dd>{$test}</dd>{/foreach}</dl>通过上⾯的将输出:<dl><dt>foreach中item属性⽤法</dt><dl>600</dl><dl>851</dl><dl>7412</dl></dl>⼆、关于item和key属性的演⽰<?php$arr = array(1 => 'test1', 2 => 'test2', 3=> 'test3');$smarty->assign('testarray', $arr);>上⾯的实例是按照数组的键/值对形式的⽤模板按键名/键值对的形式输出$testarray, 类似于PHP的foreach。
<dl><dt>foreach中item和key属性⽤法</dt>{foreach from=$testarray key=key item=value}<dd>{$key}: {$value}</dd>{/foreach}</dl>上⾯的例⼦中将输出:<dl><dt>foreach中item和key属性⽤法</dt><dd>1: test1</dd><dd>2: test1</dd><dd>3: test2</dd></dl>三、关于{foreach}中的item属性是关联数组的演⽰案例<?php$test_list=array(10=>array('a'=>1256, 'b'=>'testok'),11=>array('a'=>8959, 'b'=>'oktest'));$smarty->assign('arr_item', $test_list);>在TPL模板中写⼊foreach循环的⽅法<ul>{foreach from=$test_list key="key" item="val"}<li>{$val.a}: {$val.b}</li>{/foreach}</ul>上例将输出:<ul><li>1256: testok</li><li>8959: oktest</li></ul>四、{foreach}使⽤嵌套的item和keyAssign an array to Smarty, the key contains the key for each looped value.向Smarty设置⼀个数组,对于每个键名对应的每个循环值都包括键。
PHP高级课 Smarty模板笔记整理要点
Smarty笔记day011.什么是模板引擎模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。
模板引擎不属于特定技术领域,它是跨领域跨平台的概念。
在Asp 下有模板引擎,在PHP下也有模板引擎,在C#下也有,甚至JavaScript、WinForm开发都会用到模板引擎技术。
2.原理:模板引擎的实现方式有很多,最简单的是“置换型”模板引擎,这类模板引擎只是将指定模板内容(字符串)中的特定标记(子字符串)替换一下便生成了最终需要的业务数据(比如网页)。
置换型模板引擎实现简单,但其效率底下,无法满足高负载的应用需求(比如有海量访问的网站),因此还出现了“解释型”模板引擎和“编译型”模板引擎等。
Smarty模版引擎属于“编译型”模板引擎。
3.用途:模板引擎可以让(网站)程序实现界面与数据分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易。
我们司空见惯的模板安装卸载等概念,基本上都和模板引擎有着千丝万缕的联系。
模板引擎不只是可以让你实现代码分离(业务逻辑代码和用户界面代码),也可以实现数据分离(动态数据与静态数据),还可以实现代码单元共享(代码重用),甚至是多语言、动态页面与静态页面自动均衡(SDE)等等与用户界面可能没有关系的功能。
4.什么是smarty?Smarty是采用php写的一个模版引擎,设计的目的是要将php代码与html代码分离,使php程序员只专注于php代码的编写,网页美工只专注于网页的美化。
传统的php文件,没有模版引擎时出现的问题?html中php代码比重越来越大,php与html混编在一起。
页面的数量越来越多程序设计与美工设计分工不明确不便于以后的维护和扩展。
5.Smarty模板的优点如下:速度:相对于其他模板引擎技术而言。
编译型:采用Smarty编写的程序在运行时要编译(组合)成一个非模板技术的PHP文件,使后续的调用速度更快。
Smarty超详细PPT,培训机构内部提供
Smarty 模版变量调节 三
将变量里的的字符串转换编码 {$name|escape:html} escape & " ' < > {$name|escape:htmlall} escape all html {$name|escape:url} escape url {$name|escape:quotes} escape ' to \ ' {$name|escape:hex} escape 16进制 email 16
Smarty 模版for循环 模版
{for $x=0, $y=count($foo); $x<$y; $x++} ................ {/for} {for $x = $start to $end step $step} ................ {/for} {for $x = $start to $end} ................ {/for} 在这种情况下,步进值(step value)将根据起始值自动为1或者-1 step value Smarty 3.0 已经用for代替了section section循环
Smarty 模版全局变量
{$smarty.get.page} {$smarty.post.page} {$ername} {$smarty.session.id} {$smarty.server.SERVER_NAME} {$smarty.now} {$smarty.template}
Smarty Assign
assign($tmp_var,$value[,$nocache]) tmp_var:为模版中使用的变量名字 为模版中使用的变量名字 value:为PHP中需要传递给模版的变量名字 中需要传递给模版的变量名字 nocache:可选参数 默认为false 表示使用缓存 默认为 assign方法可以传递给模版任何类型变量 方法可以传递给模版任何类型变量
smarty模板引擎学习笔记 smarty教程
模板中的逻辑控制 从 MVC 的角度看,在模板中加逻辑控制不正确的, 但是, 有时,不同的场景下,模板的差异非常小时, 就比较适合在模板里加逻辑控制, 可以减少模板的数量.
If 控制结构 {if 表达式} .... .... {/if}
If else 控制结构 {if 表达式} ... .... {else} .... .... {/if}
单模板多缓存
Display(模板名[,缓存名]); 同一个模板名,如果不加缓存名,只能生成一个缓存文件. 如果有缓存名,则会按 缓存名+模板名 生成缓存文件. 如果同一个模板,提供不同的缓存名, 则一个模板会产生多个缓存.
同理, 在判断某个模板是否已被缓存的时候,也需要注意, 要传一个缓存名. 即 is_cached(模板名,缓存名) 才能合理判断.
用 foreach 完成表格隔行换色功能
$smarty->_foreach 属性, 是一个数组
如果 smarty 的 foreach 有 name 属性, 设 name="abc" 则 smarty->_foreach['abc'] = array(total=>循环体个数,iteration=0); 然后每循环一次,iteration 递增 1
3.1 从配置文件得到的变量 配置文件可以用来存储常用且很少变的数据,比如网站名,备案号 通过配置文件得到这些信息,不必去读数据库,可以省一些数据库的开销.
配置文件的写法; 配置项 1=值 1 配置项 2=值 2
配置文件的载入 Config_load file="xxx.conf"
配置文件中变量的引用 $smarty.config.配置项 或者 #配置项#
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模板引擎Smarty目录模板引擎Smarty (1)一、模板引擎 (2)1、混合式编程(HTML+PHP) (2)2、项目的开发流程 (2)3、什么是模板引擎 (2)4、模板引擎原理 (3)二、Smarty模板引擎 (5)1、什么是Smarty模板引擎 (5)2、为什么要学习Smarty (5)3、下载安装 (6)4、Smarty项目部署(三步走) (6)5、Smarty入门五步走 (6)三、详解Smarty工作流程 (8)1、smarty执行流程 (8)2、smarty执行原理图 (9)3、几个常用属性 (9)1)分界符 (9)2)与路径相关的四个属性 (9)3、默认值 (10)4、常用的方法 (11)四、设计篇 (11)1、模板注释 (11)2、模板中的变量 (12)1)从PHP中分配的变量 (12)2)从配置文件中读取变量 (14)3)在模板中直接定义变量 (14)3、Smarty中的常用保留变量 (15)4、变量调节器 (16)五、内建函数(sysplugins) (20)1、capture函数 (20)2、config_load函数 (20)3、include_php函数 (21)4、insert函数 (22)5、if elseif else函数 (23)6、ldelim、rdelim函数 (24)7、literal函数 (25)8、foreach函数 (25)六、作业: (27)一、模板引擎1、混合式编程(HTML+PHP)<table><tr><td>编号</td><td>手机名称</td><td>价格</td></tr><?phpwhile($row=mysql_fetch_assoc($result)) {?><tr><td><?php echo $row[‘id’]?></td><td><?php echo $row[‘name’]?></td><td><?php echo $row[‘price]?></td></tr><?php}?></table>优点:开发迅速、语法简介缺点:后期维护基本无效2、项目的开发流程设计效果图-确认-设计HTML+CSS+JS-整合PHP代码-上线测试-确认-发布-推广设计师-程序员-测试-客户不满意-设计师-程序员-测试-客户不满意-…把我们HTML+PHP进行完全分离HTML:设计师PHP:程序员3、什么是模板引擎模板引擎,是指利用某种模板语言将页面制成模板,再依据业务逻辑将该模板语言翻译成业务数据,从而生成最终展示页面。
其目的就是要把页面与业务数据实现彻底分离。
我们在很多地方都可以看到模板引擎的身影,比如各种CMS、论坛、代码生成器,甚至是Mootools、JQuery等JavaScript库都用到了模板引擎。
换肤、换模板功能:用到就是模板引擎4、模板引擎原理例1:混合式编程以上代码混合了HTML与PHP代码,后期非常难维护例2:分解以上代码,如下图所示demo02.phpdemo02.html两个案例运行效果完全一致:但是从代码分析可知,例2达到了PHP代码与HTML代码的完全分析,更方便后期维护。
5、封装一个自定义模板引擎Template.php自定义模板引擎类index.phpindex.html二、Smarty模板引擎1、什么是Smarty模板引擎smarty是一个基于PHP开发的PHP模板引擎。
它提供了逻辑与外在内容的分离。
2、为什么要学习Smarty优点:1)速度:相对于其他模板引擎而言,Smarty具有更快的响应速度2)编译型:当我们调用模板页面时,都需要文件操作,文件操作需要服务器端I/O流的开销,而实际项目上线后,模板基本不会有任何改变,所以Smarty把模板页面转化为编译文件,当下一次访问,系统并不会直接调用模板重新生成,而是直接访问编译文件。
3)缓存技术:编译速度< 缓存速度< 静态化技术4)插件技术:在smarty所有的内置标签或自定义标签都是通过类或函数定义的,我们可以对其进行扩展。
5)语句自由if/elseif/else/endif缺点:1)实时更新项目(股票、黄金)2)小项目(一个人可以开发项目)3、下载安装/ Smarty官方网站Smarty目录解析libs目录解析4、Smarty项目部署(三步走)第一步:复制libs目录到项目目录中,并更名为Smarty(名字任意,但要见名思义第二步:创建PHP入口文件第三步:创建templates文件夹作为项目模板目录,并创建模板文件5、Smarty入门五步走第一步:在PHP入口文件中,引入Smarty入口文件第二步:创建smarty对象第三步:初始化信息(读取数据、设置相应内容)第四步:通过assign方法分配变量到模板文件第五步:通过display方法实现对模板内容的显示输出示例代码:demo01.phptemplates/demo01.html运行效果:三、详解Smarty工作流程1、smarty执行流程当我们访问demo01.php页面时,系统会自动生成如下目录当我们第一次访问html模板文件时,Smarty系统会自动生成html模板文件的编译文件,如上图所示,那么Smarty编译文件如何产生的呢?又在何种情况下会发生变化?答:1)当我们第一次访问html模板时产生编译文件2)当模板文件改变时,编译文件发生变化,如下图所示说明:在计算机系统中,任何一个文件都有三个时间文件的修改时间会随着文件的修改发生变化,我们的Smarty系统自动记录了模板文件的最后修改时间,当其发生变化时,系统将重新生成编译文件。
2、smarty执行原理图3、几个常用属性1)分界符●left_delimiter :左分界符,默认为{●right_delimiter:右分界符,默认为}在PHP入口文件,我们可以通过设置以上两个属性实现对分界符的定义模板中可以采用如下方式进行访问2)与路径相关的四个属性●template_dir :模板路径●complile_dir :编译路径●config_dir :配置文件目录●cache_dir :缓存目录注:在3.0之前版本以上四个属性是公有的var $template_dir;var $complile_dir;var $config_dir;var $cache_dir;在全局外部可以正常调用,但是在3.0以后版本,以上四个属性都被声明私有属性private,但是在全局外部依然可以正常调用:以上代码说明:在Smarty类的内部肯定定义了__set与__get两个魔术方法,在Smarty.class.php中,代码如下但是不推荐使用以上四个属性直接设置项目目录,推荐使用一下方法●setTemplateDir() :设置模板路径●setCompileDir() :设置编译目录●setConfigDir() :设置配置文件目录●setCacheDir() :设置缓存目录3、默认值模板目录:templates编译目录:templates_c缓存目录:cache配置目录:configs注:在Smarty中,编译目录与缓存目录是会自动生成的,但是不推荐直接生成,建议在初始化项目自动建立template_c与cache文件夹。
4、常用的方法assign()方法调用该方法主要主要是为Smarty模板文件中的变量赋值,可以传递一对名称/数值对,也可以包含名称/数值对的关联数组display()方法基于smarty的脚本必须使用这个方法,而且一个脚本中只能使用一次,因为它负责获取和显示由Smarty引擎引用的模板。
四、设计篇1、模板注释基本语法:{* Smarty注释*}demo02.php示例代码:demo02.html说明:Smarty中模板注释属于服务端注释,所以其被不会输出显示在客户端浏览器的源码中。
2、模板中的变量1)从PHP中分配的变量2)从配置文件中读取变量3)在模板文件中创建1)从PHP中分配的变量普通变量、数组、对象示例代码:demo02.html运行效果:2)从配置文件中读取变量在Smarty中,配置主要用于页面信息的输出显示demo03.htmlconfigs/config.conf3)在模板中直接定义变量基本语法:{assign var=’变量名称’ value=’变量的值’}{$变量名称=’变量的值’}调用形式如下:{$变量名称}3、Smarty中的常用保留变量在Smarty系统,通过$smarty开头的变量都属于系统保留变量$smarty.get.page :相当于PHP中的$_GET[‘page’];$smarty.post.page :相当于$_POST[‘page’];$ername :$_COOKIE[‘username’];$smarty.server.SERVER_NAME :$_SERVER[‘SERVER_NAME’]; $smarty.env.Path :$_ENV[‘Path’];$smarty.session.id :$_SESSION[‘id’];$ername :$_REQUEST[‘username’];{$smarty.now} :返回系统时间的时间戳{$smarty.const} :返回系统中的常量信息{$smarty.capture} :输出capture标签所捕获的内容{$smarty.config} :获取配置文件中的信息{$smarty.section} :读取section循环信息{$smarty.template} :读取当前正在操作的模板信息{$smarty.current_dir} :读取当前目录{$smarty.version} :读取当前Smarty版本号{$smarty.ldelim} :读取左分界符{$smarty.rdelim} :读取右分界符注:如需要使用ENV环境变量,请在php.ini文件中,设置一下变量:示例代码:demo04.html运行效果:4、变量调节器变量调节器主要是对变量进行格式化。
基本格式{$变量名称|调节器:参数1:参数2:……}常用的变量调节器:{$var|capitalize} :首字母大写{$var|count_characters:true} :计算字符数,如果参数为true,则计算空格{$var|cat:var2} :字符串连接{$var|count_paragraphs} :计算段落数{$var|count_sentences} :计算句子数{$var|count_words} :计算单词数运行效果:{$var|date_format:”%Y%m%d”} :时间格式化,%Y-%m-%d %H:%M:%S {$v ar|default:”value”} :当变量为空时,设置默认值{$var|escape} :html转码{$var|indent:10:”*”} :字符缩进{$var|lower} :转小写{$var|upper} :转大写{$var|nl2br} :把\n转化为br标签运行效果:{$var|regex_replace:”/[\t\n]/”:””} :正则替换{$var|replace:”aa”:”bb”} :字符替换{$var|spacify:”^^”} :插空(在字符与字符之间插空){$var|string_format:”%d”} :字符串格式化%d:格式化为整数%s :格式化字符串{$var|strip: “*”} :去除多余的空格{$var|strip_tags} :去除html标签{$var|truncate:30:”…”} :截取指定长度的字符(英文){$var|wordwrap:30:”<br>”} :行宽约束运行结果:变量调节器还可以组合应用基本语法:{$var|capitalize|truncate:30:”…”|replace:”aa”:”bb”}答:首先把var变量的首字母大写,截取30个字符长度,并用…代替,替换子串aa为bb五、内建函数(sysplugins)1、capture函数功能:捕获一段内容,但不输出基本语法:{capture name=’变量名称’}内容{/capture}调用:{$smarty.capture.变量名称}示例代码:效果如下图:2、config_load函数功能:读取配置文件信息基本语法:{config_load file=“file”section=“section”}参数说明:file:要读取配置文件名称section:section节(类似局部变量)示例代码:config.conf运行结果:3、include_php函数功能:载入php页面到指定的变量中基本语法:{ include_php file=“file”assign=“var”once=“true|false”}参数说明:file:要载入php页面assign:载入成功后,赋予其值到var变量中once:是否只载入一次注:在3.0版本中,此方法已废弃,如想使用此功能,可以使用SmartyBC.class.php进行加载。