Smarty入门学习
---------------------------------
安装和设置
---------------------------------
require('../Smarty/Smarty.class.php');
$smarty = new Smarty;
$smarty->template_dir= 'templates/';
$smarty->compile_dir = 'templates_c/';
$smarty->config_dir = 'configs/';
$smarty->cache_dir = 'caches/';
$smarty->caching = true;
$smarty->debugging = true;
$smarty->cache_lifetime = 120;
// $smarty->force_compile = true;
// $smarty->left_delimiter = '<{';
// $smarty->right_delimiter = '}>';
---------------------------------
基本语法
---------------------------------
1.注释
{* 我是Smarty 注释, 在编译输出后我并不存在 *}
2.变量
(1)数学和嵌入标签
{$foo={counter}+3}// 标签里面嵌套标签
(2)定义数组
{assign var=foo value=['y'=>'yellow','b'=>'blue']}
{assign var=foo value=[1,[9,8],3]}
(3)短变量
{$foo = strlen($bar)}
{$foo.bar=1}
(4)dot语法
{$foo.a.b.c} // $foo['a']['b']['c']
{$foo.a.$b.c} // $foo['a'][$b]['c']
(5)可变变量
{$foo_{$x}} // 如果$x=1, 则会输出变量$foo_1的值
(6)对象链:
{$object->method1($x)->method2($y)}
(7)直接使用php函数
{time()}
3.函数
{funcname attr1="val" attr2="val"}
例如:{include file="header.tpl"}
4.属性
{include file="header.tpl"}
{include file="header.tpl" nocache}// 等于nocache=true
{include file="header.tpl" attrib_name="value"} // 多个
{include file=$includeFile}// 变量
{include file=#includeFile# title="My Title"}
// config
{assign var=foo value={counter}} // 插件
{assign var=foo value=substr($bar,2,5)} // PHP函数返回值
{assign var=foo value=$bar|strlen} // 使用调节器
{func var="test $foo test"}// 双引号里嵌入变量
{func var="test $foo.bar test"}// 双引号里嵌入变量(变量可以是表达式,数组等)
5.忽略/转移Smarty解析
<script>
// 以下大括号的内容会被Smarty忽略:因为它们里面有空格
function foobar {
alert('foobar!');
}
// 下面的内容会保持原义输出:因为使用了literal标签
{literal}
function bazzy {alert('foobar!');}
{/literal}
</script>
;
Smarty入门学习的更多相关文章
- PHP 入门学习教程及进阶(源于知乎网友的智慧)
思过崖历程: 自学的动机.自学的技巧.自学的目标三个方面描述学习PHP的经历 一.自学的动机: 一定要有浓厚的兴趣,兴趣是最后的老师,可以在你迷茫的时候不断地支撑着你走下去. 自学不是为了工作,不是为 ...
- vue入门学习(基础篇)
vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- PyQt4入门学习笔记(三)
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
- Retrofit 入门学习
Retrofit 入门学习官方RetrofitAPI 官方的一个例子 public interface GitHubService { @GET("users/{user}/repos&qu ...
- MyBatis入门学习教程-使用MyBatis对表执行CRUD操作
上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...
随机推荐
- Axure基础操作
一 简介 Axure RP就是一个快速原型(Rapid Prototyping)设计工具. 快速原型(快速模型demo)在真正的开发之前,构造一个原型.把需求模块进行落实.实现部分交互. 二 Ax ...
- Storyboards Tutorial 02
内容中包含 base64string 图片造成字符过多,拒绝显示
- 安全 --- CSRF攻击
什么是CSRF CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/X ...
- ylb: SQL表的高级查询-子查询
ylbtech-SQL Server: SQL Server- SQL表的高级查询-子查询 SQL Server 表的高级查询-子查询. 1,ylb:表的高级查询-子查询返回顶部 --======== ...
- Node.js自动化技术实现(Java)
Node.js自动化测试框架(NodeTestFramework):
- 常见CSS两栏式布局
代码下载:https://files.cnblogs.com/files/xiandedanteng/TwoColumnLayout.rar 效果展示: 代码: <!DOCTYPE html&g ...
- 又一次遇到Data truncation: Data too longData truncation: Data too long问题
往MySQL的blob字段上传文件,结果又出现了Data truncation: Data too longData truncation: Data too long异常. 我的第一反应是查看/et ...
- python例子
例一:for循环 for i in range(1,100): if i==23: print "great,%s you got your lucky number:" %(i) ...
- 多系统启动光盘制作---WIN7+WinXP+老毛桃PE工具箱
1.工具: ⑴ Windows 7 ISO: ⑵ Windows XP ISO: ⑶ 老毛桃U盘启动盘制作工具V2013 制作得的ISO (含PE.DOS等): ⑷ UltraISO.EasyBoot ...
- CSS3 background属性
background: #00FF00 url(bgimage.gif) no-repeat fixed top; background 简写属性在一个声明中设置所有的背景属性. 可以设置如下属性: ...