Smarty模本引擎
封装一个自定义Smarty引擎

Smart模板注释 基本语法:{* 注释内容 *}
Smarty模板中的变量
简单变量
四种标量类型:整型、浮点型、布尔型和字符串型!
数组变量
可以给模板分配一个数组变量使用(一维和多维都可以)
对象变量
我们同样的可以将一个对象变量分配给模板文件,然后通过{$对象名->属性名}来访问这个对象的属性值!


变量调节器
基本语法
不同的调节器有不同的名字,可以完成不同的功能,并且不同的调节器都有自己不同的参数!
{$变量名|调节器名:参数1:参数2:参数3……}
cat
作用:主要是对两个字符串进行连接操作!
{$变量名1|cat:$变量名2|cat:$变量名3}
date_format
作用:对时间戳进行格式化!参数有很多,但是主要的参数还是代表年月日时分秒的参数!
{$变量名(时间戳)|date_format:‘%Y-%m-%d %H:%M:%S’}
default
作用:当一个变量为空或者没有定义的时候,默认的就以default后面的值进行填充!
{$变量名|default:值}
lower 和 upper
作用:将字符串里面的英文字母全部转换成小写或大写!
{$变量名|lower}
{$变量名|upper}
escape
作用:加上这个调节器后,浏览器就不会解析相关的html等标签!
{$变量名|escape}
strip_tags
作用:去掉js和html等相关的标签!
{$变量名|strip_tags}
nl2br
作用:将字符串中的\n转换为<br />标签,从而在显示的时候真正的实现换行的效果
{$变量名| nl2br}
replace
作用:将变量中的字符串1全部替换成字符串2
{$变量名| replace:字符串1:字符串2}
tring_format
作用:讲字符串进行格式化!比如:%d代表整型,%s代表字符串!
{$变量名| string_format:’%d’}
truncate
作用:只截取前多少多少的字符,后面用…代替!
{$变量名|truncate:字符串长度:’…’}
注意:
1, 这的…是默认结束符,可以省略!
2, 这里的…占用字符串指定的长度!
3, 这里的结束符也可以使用用户指定的字符串
4, 如果实在不想显示任何的结束符,可以使用null代替
5, 也可以省略字符长度,默认为80个!
6, 截取中文的时候容易出现乱码:
Smarty系统变量
也叫作Smarty保留变量,就是Smarty系统自己已经定义好了,不需要用户手动分配给模板,可以直接在模板文件中使用的变量!
常用的有以下的几个:
{$smarty.get.变量名称} 相当于PHP中的$_GET
{$smarty.post.变量名称} 相当于PHP中的$_POST
{$smarty.cookies.变量名称} 相当于php中的$_COOKIE
{$smarty.session.变量名称} 相当于php中的$_SESSION
{$smarty.now} 相当于php中的time函数,返回一个当前时间的时间戳!
Smarty的内置语句
foreach
基本语法
{foreach from=数组名 item=元素的值的名 key=元素的键名 name=名称}
{foreachelse}
{/foreach}
主要功能:用于数组元素的遍历!
from:要遍历哪个数组元素(必选项)
item:系统每次将遍历的结果放入到变量item中(必选项)
key:键名
name:给本次foreach遍历起一个名字
foreach中的内置变量
$smarty.foreach.name.index: 代表循环的索引值,默认是从0开始,其中的name就是在foreach选项中给foreach循环起的一个名字!也就是说,如果想使用foreach内置变量,就必须先给foreach循环起一个名字!
$smarty.foreach.name.iteration:循环迭代,代表当前是第几次循环,默认从1开始!
$smarty.foreach.name.total: 代表本次一共循环了多少次!
include
基本语法: {include file=”文件名” 变量名=变量值}
主要功能:实现文件加载,常用于网页布局
if…elseif…else
literal标签
基本语法
{literal}
……
{/literal}
主要的功能就是把被包裹的标记当做普通文件直接输出,也就是不会被smarty解析,主要用于包裹js和css标签!
Smarty模本引擎的更多相关文章
- smarty模板引擎
1. 使用smarty 1.1 项目引入 // 3, 连接数据库,提取相关数据 $title = "Smarty模板引擎"; $content = "Smarty模 ...
- 写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码)
前些时间在看创智博客韩顺平的Smarty模板引擎教程,再结合自己跟李炎恢第二季开发中CMS系统写的tpl模板引擎.今天就写一个迷你版的Smarty引擎,虽然说我并没有深入分析过Smarty的源码,但是 ...
- 深入浅出之Smarty模板引擎工作机制(二)
源代码下载地址:深入浅出之Smarty模板引擎工作机制 接下来根据以下的Smarty模板引擎原理流程图开发一个自己的模板引擎用于学习,以便加深理解. Smarty模板引擎的原理,其实是这么一个过程: ...
- 深入浅出之Smarty模板引擎工作机制(一)
深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解. ...
- Smarty模板引擎技术二
Smarty模板引擎技术 内建函数 include_php内建函数 作用:载入一个php文件,将载入的文件的内容赋值给一个变量 注意:该内建函数只能在2.0中使用,如果使用的话,必须得实例化Sma ...
- Smarty模板引擎技术
Smarty模板引擎技术 什么是模板引擎? 什么是Smarty模板引擎? 为何选择Smarty模板引擎? 如何使用Smarty模板引擎? 一.历史背景 场景一:回顾之前编写PHP项目的方式 //链接数 ...
- Ci框架整合smarty模板引擎
Ci框架整合smarty模板引擎 备注:下载smarty时,最好选择2.6版本,其他测试有坑,ci可以是2.2或其他 大体思路:将smarty封装成ci框架的一个类,然后重新配置一下smarty,这样 ...
- 迷你版 smarty --模板引擎和解析
http://blog.ipodmp.com/archives/php-write-a-mini-smarty-template-engine/ 迷你版Smarty模板引擎目录结构如下: ① 要开发一 ...
- smarty模板引擎原理解析
//php 控制器文件 <?php//引入模板引擎文件include("20130304.php");$smarty =newTinySmarty();$qq_numbers ...
随机推荐
- iOS、swift、React Native学习常用的社区、论坛
<!----iOS> <!----Swift>*IOS开发常用社区:http://code4app.com/ *IOS开发常用社区:http://www.cocoachina. ...
- VB CreateObject转C#
C#调用方法.函数获取属性大致流程如下: System.Type oType = System.Type.GetTypeFromProgID("SomeClass"); objec ...
- Legacy Notes网络和服务端配置的笔记
在云服务器上使用LAMP全过程: 第一步:传文件 在windows上下载winscp,连接使用scp协议.注意:centos需要安装scp yum install openssh-clients 即可 ...
- Excel 去掉每次打开弹出自定义项安装的弹窗
弹窗: 解决方案: 一.打开“文件”——“选项”如图. 二.选择“加载项”,下面的“管理”,选择“COM加载项”,然后点击“转到”,弹出框: 三:在“可用加载项”下面你会发现有一项是“LoadTest ...
- DataSet,DataTable与DataRow的复制方法
DataSet 对象是支持 ADO.NET的断开式.分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个DataTabe中的数据 ...
- 用RollViewPager实现Android滚动banner
最近项目中要实现一个循环滚动的banner,效果如下图 这个自己写实在是不方便,而且写出来也很难保证没有bug和性能缺陷,好在网上有人开源了一个实现滚动banner的RollViewPager框架,亲 ...
- ThoughtWorks.QRCode源码
http://files.cnblogs.com/files/xiaoyu369/ThoughtWorks.QRCode.rar
- 【python】pickle模块
持久性的基本思想很简单.假定有一个 Python 程序,它可能是一个管理日常待办事项的程序,您希望在多次执行这个程序之间可以保存应用程序对象(待办事项).换句话说,您希望将对象存储在磁盘上,便于以后检 ...
- Comparable和Comparator实现对象比较
由文生义: 继承Comparable ,表示该类的实例是可以相互比较的; 继承Comparator,表示该类是一个比较器,里面设置了按什么属性比较,list需要按这个比较器里的规则来比较; 使用方法如 ...
- JCrop+GraphicsMagick+Im4Java 实现图像裁减
Im4Java的安装文档见:http://blog.csdn.net/tangpengtao/article/details/9208047 JCrop的插件:jquery.Jcrop.js jQue ...