---------------------------------
安装和设置
---------------------------------

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入门学习的更多相关文章

  1. PHP 入门学习教程及进阶(源于知乎网友的智慧)

    思过崖历程: 自学的动机.自学的技巧.自学的目标三个方面描述学习PHP的经历 一.自学的动机: 一定要有浓厚的兴趣,兴趣是最后的老师,可以在你迷茫的时候不断地支撑着你走下去. 自学不是为了工作,不是为 ...

  2. vue入门学习(基础篇)

    vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...

  3. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  4. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  5. PyQt4入门学习笔记(三)

    # PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...

  6. PyQt4入门学习笔记(一)

    PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...

  7. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  8. Retrofit 入门学习

    Retrofit 入门学习官方RetrofitAPI 官方的一个例子 public interface GitHubService { @GET("users/{user}/repos&qu ...

  9. MyBatis入门学习教程-使用MyBatis对表执行CRUD操作

    上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...

随机推荐

  1. Axure基础操作

    一  简介 Axure RP就是一个快速原型(Rapid Prototyping)设计工具. 快速原型(快速模型demo)在真正的开发之前,构造一个原型.把需求模块进行落实.实现部分交互. 二  Ax ...

  2. Storyboards Tutorial 02

    内容中包含 base64string 图片造成字符过多,拒绝显示

  3. 安全 --- CSRF攻击

    什么是CSRF CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/X ...

  4. ylb: SQL表的高级查询-子查询

    ylbtech-SQL Server: SQL Server- SQL表的高级查询-子查询 SQL Server 表的高级查询-子查询. 1,ylb:表的高级查询-子查询返回顶部 --======== ...

  5. Node.js自动化技术实现(Java)

    Node.js自动化测试框架(NodeTestFramework):

  6. 常见CSS两栏式布局

    代码下载:https://files.cnblogs.com/files/xiandedanteng/TwoColumnLayout.rar 效果展示: 代码: <!DOCTYPE html&g ...

  7. 又一次遇到Data truncation: Data too longData truncation: Data too long问题

    往MySQL的blob字段上传文件,结果又出现了Data truncation: Data too longData truncation: Data too long异常. 我的第一反应是查看/et ...

  8. python例子

    例一:for循环 for i in range(1,100): if i==23: print "great,%s you got your lucky number:" %(i) ...

  9. 多系统启动光盘制作---WIN7+WinXP+老毛桃PE工具箱

    1.工具: ⑴ Windows 7 ISO: ⑵ Windows XP ISO: ⑶ 老毛桃U盘启动盘制作工具V2013 制作得的ISO (含PE.DOS等): ⑷ UltraISO.EasyBoot ...

  10. CSS3 background属性

    background: #00FF00 url(bgimage.gif) no-repeat fixed top; background 简写属性在一个声明中设置所有的背景属性. 可以设置如下属性: ...