位置: 编程技术 - 正文

Smarty3配置及入门语法

编辑:rootadmin

推荐整理分享Smarty3配置及入门语法,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

一.Smarty3配置

下载Smarty文件

在Smarty的官方网站下载Smarty文件,解压下载到的Smarty文件,Smarty的库文件就在libs文件夹中。

我使用的PHP调试环境的程序集成包是phpstudy,默认在D盘会有一个WWW的文件夹,在WWW文件夹中创建一个testSmarty的文件夹,testSmarty文件夹就是本次练习Smarty的项目根目录。在testSmarty中创建一个smarty的文件夹,并将libs中的文件复制到这个smarty文件夹中。目录结构如下:

Smarty配置

在testSmarty文件夹中创建一个test文件夹,在这个文件夹中创建一个config.php文件,内容如下:

在设置路径的时候我使用的是绝对路径,也能使用相对路径。依据设置的路径,还要在test文件夹中创建tpl,template_c和cache文件夹。

目录如下:

检验smarty是否配置成功:

在test文件夹下创建一个start.php文件,文件内容如下:

在tpl文件中创建一个start.tpl文件,内容如下:

{$text}

模板文件的后缀并不是非得是tpl

在浏览器中输入localhost:/testSmarty/test/start.php

注意:在我这儿Apache是端口

如果浏览器中能够显示出hello Smarty,则说明Smarty配置成功。

二.入门语法

界定符

Smarty的标签是位于界定符之间,默认界定符是{和},界定符是可以改变的。在配置文件中对界定符进行修改,如下:

  //将左界定符改为#

$smarty->left_delimiter = '#';//将右界定符改为#$smarty->right_delimiter = '#';

当Smarty读取到界定符之间的内容会试图解析它,并输出结果。在界定符之外的内容都是静态。

注释

注释是以*开头*结尾的,外面包着界定符,如下:

{* 这儿是注释 *}

输出变量

传递的值可以是字符串,数组也能是对象。

当变量是字符串时,{$变量名}表示输出变量。

当变量是数组时,输出变量的方式有两种,分别为:

  a.{$arr.key}

  b.{$arr['key']}

当是一个对象时,可以直接通过obj->method(),调用对象的方法

条件判断

条件判断的基本句式如下:

基本的条件修饰符有:eq(等于),neq(不等于),gt(大于),lt(小于),lte(小于等于),gte(大于等于)。修饰符前后要有空格

循环

Smarty中有两种循环,分别是foreach,section,for和while

section循环

section不能循环遍历关联数组,它只能循环遍历连续数字下标的数组,如果要循环关联数组使用foreach

section可以接受name,loop,step,start,max,show,其中name和loop是必须的。name是每一次循环得到的下标,loop是??循环的值,step循环的步长,默认为1,max是最大循环的次数,start开始循环的下标,默认为0,如果start为负数,就从数组末尾开始循环,show表示是否显示循环的内容,默认是true

如下:

在test文件夹下创建section.php文件,内容如下:

Smarty3配置及入门语法

在tpl文件夹下创建section.tpl文件,内容如下:

foreach循环

foreach循环比section循环要简单,foreach的语法与php中foreach的语法很像,foreach可以做到任何section做到的功能,并且foreach更简单

例子如下:

在test文件夹中创建foreach.php文件,文件内容如下:

在tpl文件夹中创建foreach.tpl文件,内容如下:

for循环

for循环用于创建一个简单的循环,语法如下:

{for $variable = $startValue to $entValue step $step}

step可以不指定,默认循环的步长是1。for还可以指定一个max属性,max属性用于指定循环的次数

与foreach循环类似,for循环也有一个forelse。{forelse}在循环不能遍历的时候执行

while循环

Smarty的while循环与php中的while循环类似,语法如下:

在循环中使用{break}可以停止循环,{continue}退出当前循环进入下一次循环

插件

Smarty插件的实质是函数,插件的类型有三种,分别是function插件,modifier插件(变量调节插件),block插件

使用插件

function插件的使用:{funcName param1 = value...}

modifier插件的使用:{$variable | modifierName:param1...}

block插件的使用:

如:

制作插件

制作插件的方式有三种

1.使用registerPlugin函数注册写好的自定义函数

2.将写好的插件放在smarty目录中的Plugins目录里

3.PHP内置函数可以自动的以修饰插件(变量调节插件)的形式在模板中使用

使用registerPlugin函数注册自定义插件,例子如下

在test文件夹下创建defineFunc.php文件,内容如下:

在tpl文件夹下创建一个defineFunc.tpl文件,内容如下:

{f_test p1='learn' p2=' Smarty'}

registerPlugin函数的第一个参数说明注册的这段程序的类型,在这里是function说明注册的是一个function插件,还可以取得值有block和modifier,第二个参数指注册的Smarty function插件名,第三个参数指自定义函数名,第二个参数和第三个参数可以相同。

在Smarty中当执行到{f_test p1='learn' p2=' Smarty'}时,p1和p2会被打包成一个数组传递到我们定义的test函数中去。

通过网Plugins文件夹中添加文件的方式制作插件

1.制作function插件

在Plugins文件夹下创建一个function.test.php文件(function表示这个一个function插件,test表示插件名),内容如下:

在模板中直接使用test function插件

{test h = 3 w = 5}

这两个参数会被打包成一个数组传递到smarty_function_test函数中

2.制作modifier插件

在Plugins文件夹下创建一个modifier.test2.php文件(modifier表示这个一个modifier插件,test2表示插件名),内容如下:

在模板中使用test2 modifier插件

{$time|test2:'Y-m-d H-i-s'}

定义modifier插件和function插件有所不同,function插件的自定义函数只接收一个数组参数,modifier插件的自定义函数

将接收到的参数一一列举出来

3.制作block插件

在Plugins文件夹下创建一个block.test3.php文件(block表示这个一个block插件,test3表示插件名),内容如下:

在模板中使用test3 block插件

{test3}{/test3}之间的内容传递到smarty_block_test3中的第二个参数中,test3后跟着的参数打包成一个数组传递到smarty_block_test3中的第一个参数中。

标签: Smarty3配置及入门语法

本文链接地址:https://www.jiuchutong.com/biancheng/293823.html 转载请保留说明!

上一篇:PHP+JavaScript实现无刷新上传图片(phpjson)

下一篇:php操作access数据库的方法详解(php操作mysql数据库)

  • 个人所得税全年一次性奖金优惠政策
  • 账面价值计税基础算法
  • 年终奖1月发放能算上一年吗
  • 股份支付为什么计入股本溢价
  • 金税盘怎样查询已开发票明细
  • 年末暂估下年怎么入账
  • 利润表没有资产减值损失这一栏,需要增加吗
  • 规划设计合同需要缴纳印花税吗为什么
  • 发票备注栏必须备注的有哪些
  • 手机超过多少钱可以报警立案
  • 非税收入如何审查
  • 一般借款资本化加权平均数
  • 职工宿舍楼日常管理制度
  • 电影院买电影票怎么买
  • 银行发放执行款多久到账
  • 预收账款年底要确认收入吗
  • 材料检测费怎么计算
  • 代扣工资申请怎么写
  • 利润表中企业所得税
  • 增值税发票含税不含税怎样调整
  • 个体工商户地税没有申报罚款多少
  • 通讯费能开专票吗
  • 为什么增值税普通发票不能抵扣
  • 只要有收入就要交印花税吗
  • 公司买汽车怎么做内账
  • 增值税专用发票和普通发票的区别
  • 买卖不破租赁什么情况必须搬走
  • 增值税进项转出后企业所得税调整是含税价还是不含税价
  • 差额征收增值税如何申报
  • 1697509479
  • 当月未抵扣进项税在进项税额明细表怎么填
  • 税控专用设备全称是什么
  • 广告费和业务宣传费
  • 结转净利润到利润分配
  • 企业缴纳社保的社保险种包括
  • 公司内部罚款的备注怎么写劳动仲裁
  • 公司装修款账务处理
  • PHP:Memcached::setMultiByKey()的用法_Memcached类
  • dwm.exe是啥
  • PHP:mcrypt_cbc()的用法_Mcrypt函数
  • 在建工程减值准备核销
  • 资产划转增值税 开票怎么开
  • 魅族路由器mini padavan
  • 苏格兰高地什么意思
  • 幼儿园会计需要什么条件
  • kali linux如何使用
  • Smarty3配置及入门语法
  • iis安装php环境
  • vue clonedeep
  • YOLOv5网络结构组成
  • oc底层原理
  • php静态方法可以被继承吗
  • php array_udiff_assoc 计算两个数组的差集实例
  • php中&&什么意思
  • Laravel5.1自定义500错误页面示例
  • 补开上年发票的税务处理要怎么做?
  • mysql5.6.24
  • 个人跑运输怎么开发票
  • 减值准备为什么不影响影响资产余额
  • 哪些固定资产是负债类
  • 事业单位财政直拔工资误填为劳务费怎么写情况说明
  • 合并报表六大抵消分录CPA
  • 结转完工入库产品成本的会计分录
  • 债券票面利率与期限成正比
  • 银行手续费未取得发票可以进行税前扣除吗
  • 直接收到货款也要走应收账款吗
  • 跨年度固定资产转为在建工程怎么计算
  • 库存现金过多的隐患
  • win2003 enterprise序列号
  • linux里find命令
  • win10 mobile下载
  • mac终端输入代码有什么影响
  • linux中的rpm什么意思
  • opengl基础知识
  • cocos2dx 4.0
  • opengl点的绘制
  • unity rpg插件
  • linux的ftp命令
  • pythion
  • 山东省水资源税征收标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设