ecshop中smarty最常用的6大基本语法
模板制作比较核心的其实就是变量的使用,因为这些就是数据的根本,想从数据库里获取数据并显示在界面就必须使用smarty来展示,下面是关于smarty的介绍和使用。
Smarty是一个php模板引擎,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.
Smarty要求web服务器运行php4.0.6和以上版本.
smarty安装需要smarty库文件。可以去官方网站http://smarty.php.net下载。
网上讲了很多安装的教程,但是我都没有成功,所以直接把整个目录名改为smarty直接复制到了网站所在的目录下,然后打开
http://网站路径/smarty/demo/index.php,显示正常,应该算是安装成功了。
基本语法
所有的smarty标签都被加上了定界符.在smarty里,所有定界符以外的内容都是静态的,当smarty遇到了模板标签,将尝试解释他们,然后再以恰当的方式输出.
默认情况下是 {和},但它们是可定制的.定制方法是:
$smarty->left_delimiter = '<!--{';
$smarty->right_delimiter = '}-->';
1.注释
模板注释被*号包围,例如 {* this is a comment *}
smarty注释将不被输出.它是模板内在的注释.
2.变量
模板变量以$开头,可以包含数字,字母和下划线。
config_file变量是例外要用#变量名#的方法引用
3.函数
smarty标签输出一个变量或者调用某种函数.
在定界符内函数和其属性将被处理和输出.例如:
{funcname attr1="val" attr2="val"}.
funcname为函数的名称比如:include等,attr1,attr2为属性名,val为属性相应的值。
在模板里无论是内建函数还是自定义函数都有相同的语法.
内建函数将在smarty内部工作,例如 {if}, {section} 和{strip}.他们不能被修改.
自定义函数通过插件机制起作用,它们是附加函数,可以随意修改,自行添加.
例如 {html_options} and {html_select_date}
4.属性
静态数值不需要加引号,布尔值(真或假)也不需要引号,可以是true,on,yes或者false,off,no. 但是字符串例外.变量同样被用到了,它们也不能加引号.
5.在字符串中插入变量
只 能识别数字,字母,下划线和[]的组合,如果为复杂的形式需要用``将变量隔起来。比如{func var="test $foo.bar test"} 中只能识别变量$foo,要识别$foo.bar,需要写成{func var="test `$foo.bar` test"}的格式。
6.一些保留字的显示方法
在 模板中如果要将smarty的一些保留字作为语言的内容显示出来,比如显示分隔符,默认为{}的方法是: {ldelim},{rdelim} 或者{$smarty.ldelim},{$smarty.rdelim} 或者可以把{}放在{literal} .. {/literal} 中间输出。
smarty的保留变量
{$smarty}保留变量可以被用于访问一些特殊的模板变量.
以下是全部.
页面请求变量
以 下是访问页面请求变量诸如get,post,cookies,server,enviroment和session变量的例子. 例如{$smarty.server.SERVER_NAME}取得服务器变量,{$smarty.env.PATH}取得系统环境变量path, {$smarty.request.username}取得get/post/cookies/server/env的复合变量。
{$smarty.now}变量用于访问当前时间戳.
可以用 date_format调节器格式化输出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
{$smarty.const}
你可以直接访问PHP常量. 例如{$smarty.const._MY_CONST_VAL}
{$smarty.capture}
可以通过 {capture}..{/capture}结构 截取的输出可以使用{$smarty} 变量访问.
{$smarty.config}
{$smarty}变量 可以访问已经加载的config变量.
例如 {$smarty.config.foo}就可以表示 {#foo#}.
{$smarty.section}, {$smarty.foreach}
{$smarty} 变量可以访问'section'和'foreach'循环的属性.
{$smarty.template}
显示当前被处理的模板的名字.
{$smarty.version}
显示smarty模板的版本
{$smarty.ldelim}
显示左分隔符
{$smarty.rdelim}
显示右分隔符
变量调节器
变量调节器用于变量,自定义函数和字符串.
可以使用'|'符号和调节器名称应用调节器.
变量调节器由赋予的参数值决定其行为.
参数由':'符号分开.
如果你用变量调节器调节数组变量,结果是数组的每个值都被调节.如果你想要调节器调节整个数组,你必须在调节器名字前加上@符号.
例如: {$articleTitle|@count}(这将会在输出 $articleTitle 数组里的数目)
capitalize
将变量里的所有单词首字大写. 参数值boolean型决定带数字的词是否首字大写。默认不大写
count_characters
计算变量值里的字符数.参数值boolean型决定是否计算空格数。默认不计算空格
cat
将cat里的参数值连接到给定的变量后面.默认为空。
count_paragraphs
计算变量里的段落数量
count_sentences
计算变量里句子的数量
count_words
计算变量里的词数
date_format
日期格式
第一个参数控制日期格式.
如果传给date_format的数据是空的,将使用第二个参数作为默认时间
%a - 星期几的简写
%A - 星期几的全写
%b - 月份的简写
%B - 月份的全写
%c - 日期时间06/12/05 11:15:10
%C - 世纪时间
%d - 一个月的第几号(从 01 到 31)
%D - 同 %m/%d/%y
%e - 一个月的第几号,号为单数则前面加一空格 (从 1 到 31)
%g - 世纪
%G - 世纪 [0000,9999]
%h - 同%b
%H - 24小时形式的小时(从00到23)
%I - 12小时形式的小时(从01到 12)
%j - 一年中的第几天(从 001 到 366)
%k - 24小时形式的小时,单数字前面加空格. (从 0 到 23)
%l - 12小时形式的小时,单数字前面加空格.(range 1 to 12)
%m - 月份 (range 01 to 12)
%M - 分
%n - 换行符
%p - 显示早上还是下午`am' 或 `pm'
%r - a.m. 或 p.m.形式的时间
%R - 24小时形式的时间
%S - 秒
%t - tab符号
%T - 同%H:%M:%S
%u - 用 [1,7],表示星期几
%U - 计算是该年的第几个星期,从该年的第一个星期天开始计算
%V - 计算是该年的第几个星期, 从 01 到 53, 第一个星期必须至少有4天在这一年, 星期天作为这个星期的第一天
%w - 用数字的形式表示是星期的第几天, 星期天 为 0
%W - 用数字的形式是该年的第几个星期,从该年的第一个星期一开始计算
%x - 显示日期:月/日/年
%X - 显示时间:小时:分钟:秒
%y - 不包括世纪的年份
%Y - 包括世纪的年份
%Z - 时区
%% - 输出%
其中有些有时不能正常输出。
default
默认
为空变量设置一个默认值.
当变量为空或者未分配的时候,将由给定的默认值替代输出.
escape
转码
参数值为html,htmlall,url,quotes,hex,hexentity,javascript。默认是html转码
indent
缩进
在每行缩进字符串,第一个参数指定缩进多少个字符,默认是4个字符.第二个参数,指定缩进用什么字符代替。
lower
小写
This is used to lowercase a variable.
将变量字符串小写
nl2br
换行符替换成<br />
regex_replace
正则替换
寻找和替换正则表达式.必须有两个参数,参数1是替换正则表达式. 参数2使用什么文本字串来替换
replace
替换
简单的搜索和替换字符串必须有两个参数,参数1是将被替换的字符串. 参数2是用来替换的文本
spacify
spacify是在字符串的每个字符之间插入空格或者其他的字符串. 参数表示将在两个字符之间插入的字符串,默认为一个空格。
string_format 字符串格式化
是一种格式化浮点数的方法.例如十进制数.使用sprintf语法格式化。参数是必须的,规定使用的格式化方式。%d表示显示整数,%.2f表示截取两个浮点数。
strip 去除(多余空格)
替换所有重复的空格,换行和tab为单个或者指定的字符串. 如果有参数则是指定的字符串。
strip_tags 去除所有html标签
truncate 截取
参数1,规定截取的字符数.默认是80个.
第二个参数指定在截取的那段字符串后加上什么字符.默认为...
第三个参数决定是否精确截取,默认情况下为false,则smarty不会分割单词。
upper 将变量改为大写
wordwrap 行宽约束
第一个参数指定段落的宽度(也就是多少个字符一行,超过这个字符数换行).默认80.
第二个参数指定在约束点使用什么字符(默认是换行符\n).
第三个参数决定是否精确截取字符,默认情况下是不精确截取,就是截取时不能分开单词。
内建函数
内建函数不能擅自修改。
ecshop中smarty最常用的6大基本语法的更多相关文章
- ecshop中smarty比较操作符(eq,ne,neq)含义
eq相等, ne.neq不相等, gt大于, lt小于, gte.ge大于等于, lte.le 小于等于, not非, mod求模. is [not] div by是否能被某数整除, is [not ...
- PHP中Smarty引擎的常用语法
PHP中Smarty引擎的常用语法 输出今天的日期: {$smarty.now|date_format:"%H:%M %A, %B %e, %Y"} 实际上用到了PHP的time( ...
- ectouch第十讲 之ecshop中 dwt, lbi 文件详解
原文:http://www.yunmoban.cn/article-241.html Ecshop包括的文件夹有admin.api.cert.data.images.includes.js. lang ...
- ecshop中的些assign_dynamic(’')
很多做电子商务站的朋友都问我,在ecshop中,里面有个 assign_dynamic('index');这个到底是什么作用来的,这个其实是ecshop中的模板技术,动态处理一些局部信息更新而不被缓存 ...
- C#中四种常用集合的运用(非常重要)
C#中4个常用的集合 1.ArrayList ArrayList类似于数组,有人也称它为数组列表.ArrayList可以动态维护,而数组的容量是固定的. 它的索引会根据程序的扩展而重新进行分配和调整. ...
- eclipse/myeclipse 中的一些常用的快捷键
一.eclipse 中的一些常用的快捷键 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率. Eclipse中有如下一些和编辑相关的快捷键. 1. [ALT+/] ...
- SQL Server中截取字符串常用函数
SQL Server 中截取字符串常用的函数: .LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截 ...
- [Linux]在linux中,常常用到ctrl和其他按键组合,常用的有哪些及意义呢
在linux中,常常用到ctrl和其他按键组合,常用的有哪些及意义呢? Ctrl+c 结束正在运行的程序 Ctrl+d 结束输入或退出shell Ctrl+s 暂停屏幕输出[锁住终端] Ctrl+q ...
- Java语言中几个常用的包
Java采用包结构来组织和管理类和接口文件.本文介绍Java语言类库中几个常用的包,因为这几个包在软件开发与应用中经常需要用到,其中有些包是必要的.若是离开它,还真不能做事情了. 第一个包:java. ...
随机推荐
- MongoDB+MongoVUE安装及入门
前言及概念 据说nodejs和mongoDB是一对好基友,于是就忍不住去学习了解了一下MongoDB相关的一些东西, 那么,MongoDB是什么?这里的五件事是每个开放人员应该知道的: MongoDB ...
- 《Go学习笔记 . 雨痕》类型
一.基本类型 清晰完备的预定义基础类型,使得开发跨平台应用时无须过多考虑符合和长度差异. 类型 长度 默认值 说明 bool 1 false byte 1 0 uint8 int, uint 4, ...
- DNS服务器
DNS服务器是指“域名解析服务器”,而域名就是我们通常所说的“网址”.在互联网中识别和寻找不同的计算机,实际上是需要知道该计算机的IP地址才能进行访问.比如220.181.38.4,这个IP就是百度的 ...
- Linux source命令(转)
Linux source命令: 通常用法:source filepath 或 . filepath 功能:使当前shell读入路径为filepath的shell文件并依次执行文件中的所有语句,通常用于 ...
- arcgis导oracle多步操作产生错误。请检查每一步的状态值。" 如何解决?
你知你用的什么数据引擎,ADO? 我以前碰过类似的,我有两个方案: 1.升ado到2.7以上 2.不要用microsoft oledb provider for oracle,而要用or ...
- SurfaceFlinger( 226): Permission Denial: can't access SurfaceFlinger
MODIFY_PHONE_STATE permission is granted to system apps only. For your information, there are 2 type ...
- Fiddler抓包12-AutoResponder返回本地数据(mock)
前言 mock可以说是面试必问的话题的,我第一次接触mock的时候也是一脸懵逼.虽然fiddler工具用了很久,里面的打断点,设置自动返回数据功能都用过. mock说的通俗一点就是模拟返回数据,只是面 ...
- 大并发下TCP内存消耗优化小记(86万并发业务正常服务)
转自:http://blog.csdn.net/u010954257/article/details/54178160 最近在做一个大并发服务的测试(目前测到86万,当然有大量长连接,每天打的日志高到 ...
- Unit Testing of Spring MVC Controllers: “Normal” Controllers
Original link: http://www.petrikainulainen.net/programming/spring-framework/unit-testing-of-spring-m ...
- 开闭原则(Open Closed Principle,OCP)
遵循开闭原则设计出的模块具有两个主要特征: 对于扩展是开放的(Open for extension).这意味着模块的行为是可以扩展的.当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的 ...