20150210--Smarty1-02
三、设计篇
1、Smarty注释
基本语法:
{*注释内容*}
示例代码:
2、Smarty中的变量
1)从PHP中分配的变量(普通的变量、数组、对象)
基本语法:
$smarty->assign();
示例代码:
demo02.php
demo02.html
运行效果:
2)从配置文件中读取变量
基本语法:
在html静态模板页面,可以采用如下方式调用:
{config_load file=’配置文件名称‘}
{#配置文件中的标签名称#}
示例代码:
效果如下:
3)在模板文件中创建
基本语法:
定义
{assign var=‘name’ value=‘value’}
{$name=‘zhangsan’}
调用
{$name}
示例代码:
效果如下:
3、Smarty中的保留变量
$smarty.get.page 相当于 $_GET[‘page’]
$smarty.post.page 相当于 $_POST[‘page’]
$smarty.cookies.username $_COOKIES[‘username’]
$smarty.server.SERVER_NAME $SERVER[‘SERVER_NAME’]
$smarty.env.Path 获取系统中的环境变量的Path路径
$smarty.session.id $_SESSION[‘id’]
$smarty.request.username $_REQUEST[‘username’]
{$smarty.now} :获取当前系统时间
{$smarty.const} :获取PHP中的常量
{$smarty.capture} :获取capture标签捕获的内容
{$smarty.config} :读取配置文件信息 {$smarty.config.title}
{$smarty.section} :获取section循环信息
{$smarty.template} :获取当前调用的静态模板名称
{$smarty.current_dir} :获取当前路径
{$smarty.version} :获取当前Smarty的版本号
{$smarty.ldelim} = {ldelim} :获取当前Smarty中的左分界符
{$smarty.rdelim} = {rdelim} :获取当前Smarty中的右分界符
示例代码:
demo03.html
运行效果:
4、变量调节器(变量格式化工具)
1)什么是变量调节器
答:变量调节器主要是对变量进行格式化
基本语法:
{变量|调节器:参数1:参数2:……}
2)常用的变量调节器
{$var|capitalize} : 首字母大写
{$var|count_characters:true} :计算字符长度,第二个参数true:计算空格
{$var|count_paragraphs} :计算段落数
{$var|count_sentences} :计算句子数
{$var|count_words} :计算词数
{$var|cat:var2} :连接字符串
{$var|date_format:”%Y%m%d”} :时间格式化 Y年m月d日 H小时M分钟S秒数
{$var|default:”value”} :设置默认值
{$var|escape} :转码,主要针对html代码
{$var|indent:10:”*”} :字符缩进
{$var|lower} :转化为小写
{$var|nl2br} :把\n转化为br标签
{$var|regex_replace:”/[\t\n]/”:””} :正则替换
{$var|replace:”aa”:”bb”} :字符替换
{$var|spacify:”^^”} :插空(在字符与字符之间插空)
{$var|string_format:”%d”} :字符串格式化 %s格式化为字符串 %d格式化为整数
{$var|strip: “*”} :去除多余的空格
{$var|strip_tags} :去除html标记
{$var|truncate:30:”…”} :截取字符
{$var|upper} :转化为大写
{$var|wordwrap:30:”<br>”} :行宽约束(每行只能显示多少个字符)
示例代码:
例1:
例2:
例3:
例4:
5、变量调节器组合应用
{$var|capitalize|truncate:30:”…”|replace:”aa”:”bb”}
答:首字母大写并截取30个字符并用…相接,并把字符串中的aa替换为bb
6、内建函数
1)capture
基本语法
{capture name=‘var’}
内容
{/capture}
{$smarty.capture.var}
功能:捕获一段内容但本次不输出
示例代码:
运行效果:
2)config_load
基本语法
{config_load file=’配置文件名称‘ section=’section节‘}
{#变量名称#}
{$smarty.config.变量名称}
示例代码:
运行效果:
3)foreach
基本语法:
foreach,foreachelse
{foreach from=数组
key=键
name=名称
item=内容 }
{foreachelse}
{/foreach}
功能:实现对数组的遍历输出(类似foreach)
参数说明:
from:要遍历的数组
item:每次遍历时,系统会自动将遍历后的结果保存到item选项中
name:为foreach循环进行命名
key:保存循环时的键值
foreachelse:当要遍历的数组为空时,系统进入当前语句段
例1:遍历一维数组
示例代码
效果:
例2:二维数组遍历
例3:键值key的使用
例4:foreachelse
说明:当数组为空时,系统自动转向foreachelse语句
foreach中的附加属性
$smarty.foreach.name.index @index 获取当前循环索引
$smarty.foreach.name.iteration @iteration 第几次循环(迭代)
$smarty.foreach.name.first @first 当第一次循环时,条件为真
$smarty.foreach.name.last @last 当最后一次循环时,条件为真
$smarty.foreach.name.total @total 获取循环的总次数
例5:参数name演示
效果如下:
例6:实现隔行变色效果
示例代码:
运行效果:
4)include
基本语法
{include file=“要包含的模板文件名称” assign=“var” [var ...]}
功能:包含模板文件
参数说明:
file:要包含的 模板文件名称
变量名=变量值的形式
原理图:
对于我们的项目:由于项目的头部与尾部大部分都是相同的,所以可以单独分离出来,我们整个项目其实只需要做中间部分即可。
示例代码:
运行效果:
5)include_php
基本语法:
{include_php file=“php文件路径” once=true}
功能:引入外部php文件
once:规定引用次数为1次,boolean,true:当前文件只能引入一次,默认为true
说明:在smarty3.0中已经不推荐使用此标签,如需使用,可以使用smarty2入口文件
6、insert
基本语法
{insert name=’函数名称’ 变量=变量的值}
功能:允许我们在Smarty模板页面直接引入php函数
示例代码:
demo10.php代码
demo10.html代码
注:在使用insert方法时,请注意创建的函数前面必须添加insert_前缀,且传递的参数都是以数组的形式追加到函数的形参中。
作业:通过php+smarty完成分页程序
转载于:https://www.cnblogs.com/lifushan/p/5463955.html
20150210--Smarty1-02相关推荐
- 把QQ聊天记录插入数据库中
最近在做毕设,其中一个环节是分析qq聊天记录,在分析之前需要先把qq聊天记录导出,然后存入数据库中,qq聊天记录导出后是文本文档,导出方式: 1.登录qq后,点击任意一个好友,查看与他的聊天记录,点击 ...
- 零起点学算法02——输出简单的句子
零起点学算法02--输出简单的句子 Description 会输出Hello World!了,那换个句子也会吧? Input 没有输入 Output 现在要求你输出下面红色的字 Nice to me ...
- [转载] 杜拉拉升职记——02 单相思与性骚扰
来源:李可. 杜拉拉升职记(第三版). 西安: 陕西师范大学出版社, 2010, 5. 02 单相思与性骚扰的区别 拉拉注意到,DB所有经理办公室沿走道的这一面,都是用大块的玻璃来做间隔墙. 拉拉问 ...
- tesseract-ocr3.02字符识别过程操作步骤
1. 从http://code.google.com/p/tesseract-ocr/downloads/list下载tesseract-ocr-3.02-vs2008.tesseract-ocr- ...
- 指针02 - 零基础入门学习C语言42
第八章:指针02 让编程改变世界 Change the world by program 对"&"和"*"运算符再做些说明 如果已执行了语句 point ...
- 【青少年编程竞赛交流】02月份微信图文索引
02月份微信图文索引 由于"组队学习"这个公众号的功能主要是组织Datawhale社群中的学习者们每个月的组队学习,所以,我另外新建了这个微信公众号"青少年编程竞赛交流& ...
- 深入浅出Pytorch:02 PyTorch基础知识
深入浅出Pytorch 02 PyTorch基础知识 内容属性:深度学习(实践)专题 航路开辟者:李嘉骐.牛志康.刘洋.陈安东 领航员:叶志雄 航海士:李嘉骐.牛志康.刘洋.陈安东 开源内容:http ...
- 第02章 PyTorch基础知识
文章目录 第02章 Pytorch基础知识 2.1 张量 2.2 自动求导 2.3 并行计算简介 2.3.1 为什么要做并行计算 2.3.2 CUDA是个啥 2.3.3 做并行的方法 补充:通过股票数 ...
- 数据结构与算法:02 C#语言基本语法结构
02 C#语言基本语法结构 知识结构: 1.数据类型 第一种分类: 简单数据类型:byte.short.int.long.float.double.char.bool 组合数据类型:struct.en ...
- 技术图文:进一步完善自动化交易系统 - 02
背景 自己的自动化交易系统起初只有网格交易法一个版本:如何利用网格交易法对数字资产进行交易.后面,加入了ONE.USDT.EOS的三角套利版本:如何通过三角套利来交易数字资产.接着,发现三角套利的个别 ...
最新文章
- Logical Volume Manager(逻辑卷管理)
- OpenKruise v0.8.0 核心能力解读:管理 Sidecar 容器的利器
- linux 可执行文件与写操作的同步问题
- libsvm java下载_java-libsvm 版 结合已有数据集的demo,方便初学者使用 Develop 238万源代码下载- www.pudn.com...
- java代码代替xml实现图片
- 面试中如何剔除“鱼目混珠”程序员?
- LeetCode meituan-007. 小团的选调计划(模拟)
- mysql 一个字段走索引吗_mysql数据库--explain(查询表是否走索引)各个字段含义...
- selenium和PhantomJS的使用
- ARM处理器基本指令大全
- Angular6入门
- Windows Server 2012 如何将计算机图标添加到桌面
- keytool 错误 java.io.IOException: incorrect AVA format
- python自学教程-3D图示Python标准自学教程入门篇
- java awt run_JAVA教程 第五讲 AWT图形用户界面设计(一)
- Java调用cplex求解泊位分配模型_修正重发【CPLEX教程03】JAVA调用cplex求解一个TSP模型详解...
- 微信内如何通过链接一键关注微信公众号
- 输入一个字符串,字符串长度大于6,让黄灯长亮,否则一直闪烁
- 浅谈导航数据中POI搜索技术原理
- 软件测试基础篇1--探索式软件测试中用到的一些方法
热门文章
- php 函数有命名空间吗_解析 ThinkPHP 的命名空间
- 升级 ubuntu_Ubuntu 19.04 已经到期!现有用户必须升级到 Ubuntu 19.10
- OSPF协议及链路状态算法(详解)
- LeetCode 1903. 字符串中的最大奇数
- LeetCode MySQL 1211. 查询结果的质量和占比
- 贪心算法(Greedy Algorithm)之霍夫曼编码
- 字符串匹配算法(BM)
- java oracle 分区查询_深入学习Oracle分区表及分区索引
- 什么是document对象?如何获取文档对象上的元素?_dom对象
- 算法岗SSP offer收割指南!