php—Smarty-2
一、注释
*注释内容*
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的更多相关文章
- Smarty的基本使用与总结
含义: Smarty是PHP的一个引擎模板,可以更好的进行逻辑与显示的分离,即我们常说的MVC,这个引擎的作用就是将C分离出来. 环境需求:PHP5.2或者更高版本 我使用的环境是:PHP5.3,wi ...
- ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...
- smarty使用
smarty-牛刀小试 smarty 初识 官网 http://www.smarty.net/ Smarty is a template engine for PHP(PHP模板引擎) smarty使 ...
- Smarty模版引擎的原理
Smarty是一个使用php写出来的模版引擎,用来将原本与html代码混杂在一起PHP代码逻辑分离,实现前后端分离. Smarty模板优点: 1. 速度:采用Smarty编写的程序可以获得最大速度的提 ...
- 12月15日下午Smarty模板函数
1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}> ...
- 12月15日smarty模板基本语法
smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...
- 12月13日上午Smarty模版原理
模板主要是用来让前端和后端分离的,前台页面只是一个前台页面,后台页面用php代码写逻辑,写完逻辑拿到前台显示. 一.写法 一般需要以下:写3个页面: 1.显示页面aa.html <!DOCTYP ...
- SMARTY模板中如何使用get,post,request,cookies,session,server变量
{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中 ...
- 在新浪云SAE中使用smarty引擎模版
在新浪云上使用smarty时会发现又这样的错误信息: “SAE_Fatal_error: Uncaught exception 'SmartyException' with message 'unab ...
- MVC架构学习之Smarty学习——病来而蔫
前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情.. 当然这次是有小病在身,多个借口吧. 一有病就蔫的不行...要锻炼了啊,脚估计也差不多了,游泳试试吧这周. 这次学习Smarty ...
随机推荐
- 搭建 redis 集群 (redis-cluster)
一 所需软件:Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb 二 安装配置redis redis下载地址 ...
- MySQL 常用命令行
增加新用户 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码" 如,增加一个用户user1密码为password1,让其可以在本 ...
- vlc框架流程解析(转)
原文地址:http://luzefengoo.blog.163.com/blog/static/1403593882012754481846/ 第二部分 程序框架实现 1. 播放列表文件src/pla ...
- Cannot find class [org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer]
解决方案:添加spring-webmvc好多人都不知道org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer这个类到底 ...
- protobuf's custom-options
[protobuf's custom-options] protobuf可以设置属性,就像__attribute__可以给函数设置属性一样,protobuf更牛的是可以设置自定义属性.实际就是属性对象 ...
- Oracle的服务端_默认_启动的服务
- 图解Java常用数据结构(一)
最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList Linke ...
- [udemy]WebDevelopment_Bootstrap,Templates
Bootstrap Introduction Bootstrap 相对于CSS, JS 就像PPT模板相对于PPT 说白了就是前人已经做好了(pre-build)很多模板,你可以直接拿来主义 Boot ...
- Redis开发、管理实战
一.数据类型 String : 字符类型 Hash: 字典类型 List: 列表 Set: 集合 Sorted set: 有序集合 二.全局Key操作 KEYS * 查看KEY支持通配符 DEL 删除 ...
- Warning: Data truncated for column 'xxxx' at row 1
The problem was that I changed the column's length only in the program.I had to do either change the ...