smarty--初级
来源:互联网 发布:端口转发和端口映射 编辑:程序博客网 时间:2024/05/02 04:37
2017.2.29-2012.2.29
什么是smarty
是模板(html+css)引擎技术之一可以使得“php代码”与“html代码”分离的技术都 称为模板引擎技术
官网
http://www.smarty.net/
目录结构
第一个例子
目录结构
- 将上述的libs文件将复制到项目目录下
创建php文件,demo.php
<?php //引入核心类include "./libs/Smarty.class.php";//实例化$smarty=new Smarty;//将text设置为smarty对象属性的一部分$smarty->assign('text','hello world!');//展示模板$smarty->display("demo.html");
创建template文件夹,在template文件夹下创建demo.html模板文件
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> 姓名:{$text}</body></html>
4.浏览器访问,访问后会产生一个templates_c文件,这是php与html的混编文件。
设置路径
$smarty->setTemplateDir("./View/"); //设置模板路径$smarty->setCompileDir("./View_c/"); //设置混编文件路径$smarty->left_delimiter="<@"; //设置模板变量的左分界符$smarty->right_delimiter="@>"; //设置模板变量的右分界符
注意:在smarty模板中不能直接写PHP代码,即在View目录的html文件中不能写php代码
$smarty变量的应用
可在模板中使用$smarty.get.name,获得get方式的参数name,同样还有
-
-
-
- $smarty.env.*
配置变量的使用
- 在根目录下创建configs文件夹,在configs文件夹下创建site.conf文件(site可换成别的)
在site.conf文件里写上配置常量
FIRST=hello world!NAME=zcw
在模板文件里引入,代码如下
{config_load file="site.conf"}
在模板文件中调用常量
{#NAME#}或者{$smarty.config.NAME}
配置变量段(section)的使用
配置文件中写上段
[zcw]FIRST=hello world!NAME=zcw[hy]FIRST=hello!NAME=hy
模板文件中写上段名
{config_load file="site.conf" section="hy"}
{}使用与css或js内容有冲突
解决办法:
1. 给{}标记开始和结束加上空格
2. {literal}{/literal}里的内容不会给smarty解析
遍历数组
语法格式:{foreach 数组 as 下标变量 => 值变量} //具体操作{foreachelse} each '数组没有任何元素'{/foreach}值变量@iteration,从1开始值变量@index,从0开始值变量@first,判断是否为第一个元素值变量@last,判断是否为最后一个元素值变量@total,获取数组的长度(个数)值变量@show,判断当前数组是否有遍历出元素来
分支结构
单路分支
{if 条件} 分支逻辑{/if}
双路分支
{if 条件}{else}{/if}
多路分支
{if 条件}{elseif 条件}{elseif 条件}{else}{/if}
复选框
语法格式: {html_checkboxes name="animal" options=$animal seperator="/n" selected=$sel}参数解释:option:是一个关联数组,键为复选框的值,值为复选框的文字seperator:复选框的间隔符selected:默认选中的,形式为以复选框的值为元素的数组
下拉框
{html_options name="animal" options=$animal selected=$sel multiple="multiple"}参数解释:option:是一个关联数组,键为下拉框的值,值为下拉框的文字selected:默认选中的,形式为以下拉框的值为元素的数组multiple:是否可以选中多个
布局继承使用
创建布局文件,如layout.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>{block name="title"}{/block}</title></head><body> <div>导航</div> {block name="main"}{/block} <div>尾部</div></body></html>
引入布局文件
{extends file="layout.html"}{block name="title"}demo{/block}{block name="main"}<div>主要部分</div>{/block}
变量调节器
- date_format[格式化日期]
- default[默认值]
- lower[小写]
- truncate[截取]
- upper[大写]
缓存
0 0
- smarty--初级
- smarty安装及初级使用
- smarty安装及初级使用
- smarty安装及初级使用
- smarty安装及初级使用(转)
- PHP模板Smarty的初级使用方法及心得
- Smarty
- Smarty
- smarty
- smarty
- Smarty
- smarty
- smarty
- smarty
- smarty
- smarty
- smarty、
- smarty
- static及final知识点整理
- 夕拾算法进阶篇:13)最大连续子序列(动态规划DP)
- algorithm analysis 开坑1
- 顺序表应用8:最大子段和之动态规划法
- String如何智能计算长度
- smarty--初级
- python中的高阶函数
- 优先使用TimeUnit类中的sleep()
- Spring MVC 典型分层Java代码生成工具
- 基础练习 高精度加法
- 13 Controlled Inputs
- [替罪羊树 模板题] BZOJ 3224 Tyvj 1728 普通平衡树
- BZOJ 1989 概率相关
- 跨域