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 ...
随机推荐
- [深入浅出iOS库]之数据库 sqlite
一,sqlite 简介 前面写了一篇博文讲如何在 C# 中使用 ADO 访问各种数据库,在移动开发和嵌入式领域也有一个轻量级的开源关系型数据库-sqlite.它的特点是零配置(无需服务器),单磁盘文件 ...
- 【python】redis基本命令和基本用法详解
[python]redis基本命令和基本用法详解 来自http://www.cnblogs.com/wangtp/p/5636872.html 1.redis连接 redis-py提供两个类Redis ...
- Form元素示例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 课程设计之"网络考试系统"(php、Extjs)
1.TestSystem大概结构框图 2.数据库设计(11张表) 数据库名称:db_testsystem 数据库表: tb_admin 记录题库管理员帐户信息 代码 tb_allcontent 记录随 ...
- GIS可视化
作为一名GIS专业的学生,一晃也毕业三年了,在supermap也呆了三年多了,做的最多的就是浏览器端的GIS展示,最近也想分享一下我们团队在浏览器端GIS可视化的一些成果,算是做个宣传吧!有用的着的可 ...
- 2016.12.5 在Eclipse中为实现类impl自动生成对应接口
参考来自:http://jingyan.baidu.com/article/ab69b270d63f572ca6189f51.html 在Spring应用中,常常会用到“接口+实现类”的形式,即要实现 ...
- Linux下的定时任务Crontab
通过crontab -e写入定时任务的指令,一行为一项任务. 任务模式是时间克龙表达式+命令形式. 如: 2 0,6,12,18 * * * perl /root/restarttomcat.pl p ...
- Linux Unix shell 编程指南学习笔记(第四部分)
第十六章 shell脚本介绍 此章节内容较为简单,跳过. 第十七章 条件測试 test命令 expr命令 test 格式 test condition 或者 [ conditio ...
- 取出所有的Map集合
public static void main(String[] args) { Map<Integer, String> map = new HashMap<Integer, St ...
- 设计一个线程安全的单例(Singleton)模式
在设计单例模式的时候.尽管非常easy设计出符合单例模式原则的类类型,可是考虑到垃圾回收机制以及线程安全性.须要我们思考的很多其它.有些设计尽管能够勉强满足项目要求,可是在进行多线程设计的时候.不考虑 ...