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 ...
随机推荐
- LINUX CP命令直接覆盖不提示按Y/N的方法
refer to: https://blog.csdn.net/qq_36741436/article/details/78732201 cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,当文件比 ...
- Ceres Solver: 高效的非线性优化库(一)
Ceres Solver: 高效的非线性优化库(一) 注:本文基于Ceres官方文档,大部分由英文翻译而来.可作为非官方参考文档. 简介 Ceres,原意是谷神星,是发现不久的一颗轨道在木星和火星之间 ...
- ELK之logstash收集日志写入redis及读取redis
logstash->redis->logstash->elasticsearch 1.安装部署redis cd /usr/local/src wget http://download ...
- POJ 3254 Corn Fields [DP]
题意:略. 思路:第一次做状态压缩的dp. 在这里说一下状态压缩的原则.因为每一行只有最多12个格子,每个格子只有1(可放牛)和0(不可放牛)两种状态,这总共是2^12种状态,直接用一个int整型变量 ...
- luogu P2285 [HNOI2004]打鼹鼠
题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气. ...
- 评分条RatingBar Android
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- 140. Word Break II(hard)
欢迎fork and star:Nowcoder-Repository-github 140. Word Break II 题目: Given a non-empty string s and a d ...
- mybatis配置mapperLocations多个路径
<property name="mapperLocations"> <array> <value>classpath*:/mybatis-con ...
- docker入门小结(二)
11,网络使用 sudo docker run -d -P training/webapp python app.py sudo docker ps -l 这样将主机一个端口映射到容器中,由于app. ...
- GIS可视化——热点图
一.简介 SuperMap iClient for JavaScript提供了热点图(HeatMapLayer),用于渲染数据衰减趋势.颜色渐变的效果. 原理:在客户端直接渲染的栅格图,热点图的渲染需 ...