码迷,mamicode.com
首页 > 其他好文 > 详细

20150210--Smarty1-02

时间:2016-05-06 02:02:53      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

、设计篇

1Smarty注释

基本语法:

{*注释内容*}

示例代码:

技术分享

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完成分页程序

20150210--Smarty1-02

标签:

原文地址:http://www.cnblogs.com/lifushan/p/5463955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!