,,Smarty模板语法详解

,,Smarty模板语法详解

本文主要介绍了Smarty模板的语法,分析了Smarty模板的基本语法和使用技巧,如注释、变量、引号、函数等。有例子。有需要的可以参考一下。

本文阐释了Smarty模板语法。分享给你,供你参考,如下:

所有模板标签都用分隔符括起来,默认情况下是“{”和“}”。

模板注释

注释用星号括起来,两边的星号用分隔符“{}”括起来,比如{smarty *}。

Smarty注释不会出现在模板文件的最终输出中,与(翻译注意:html注释在页面源代码中可见,smarty注释不可见)不同。

下面这个简单的代码片段{smarty}在源代码中是不可见的,但是源代码是可见的。

超文本标记语言

tltlesmarty/tltle

身体

{*smarty*}

自作聪明的人

!自作聪明

/body

/头

/html

变量初步

变量以美元符号开头,可以包含数字、字母和下划线,这与php非常相似。(注意:profile变量是一个不以美元符号开头的变量,可以包含数字、字母和下划线,这与php非常相似。(注意:配置文件变量是用#符号而不是美元符号(#hashmarks#)括起来的变量,或者是$ smarty.config形式的变量。)

这里不解释Config。以下是变量的示例:

{$a $b} //处理变量的最简单方法

{$a={$b} 1} //标记嵌套标记

{$array[$a]} //变量做数组索引

{$assign var=fun value=$a $b} //变量赋值

{$fun='{a}'} //引号应用标签

{$assign var=fun value=[1,2,3]}

{$assign var=fun value=[1,2,[3,4]]}

{$ assign var=funvalue=[1=' one ',2=' tow ']}//数组定义

{ $ fun=stlen $ a)}

{fun=function($a,$b)} //用作函数参数。

{$array.a=1}

{ $ array . a . b . c($ array[a][b][c])=1 }//数组索引赋值

{ $ object-method 1($ x)-method 2($ y)}//对象链

双引号中插入变量

1.Smarty可以识别嵌入在双引号中的变量,只要这个变量只包含数字、字母、下划线和括号[]。

2.对于句点、数组符号和对象引用等。此变量必须使用两个反引号`。

3.Smarty3增加了双引号来支持Smarty标签。在需要包含调节器变量、插件和php函数返回值的情况下,它非常有用。

{ function var=' test $ foo test ' }//Identify $ foo

{ func var=' test $ foo _ bar test ' }//Identify $ foo _ bar

{ func var=' test ` $ foo[0]` test ' }//Identify $ foo[0]

{ func var=' test ` $ foo[bar]` test ' }//Identify $ foo[bar]

{func var='test $foo.bar test'} //识别$foo(不识别$foo.bar)

{ func var=' test ` $ foo . bar ` test ' }//Identify $ foo . bar。

{ func var=' test ` $ foo . bar ` test ' | escape }//调节器在引号之外。

{ func var=' test { $ foo | escape } test ' }//调节器在引号中。

{ func var=' test { time()} test ' }//PHP函数识别

{ func var=' test { counter } test ' }//标记标识

函数

每个smarty标签输出一个变量或调用一个函数。在分隔符内,函数(通常用分隔符' {} '括起来)及其属性(也在分隔符内)将被处理和输出。示例:{function(函数名)attr1(变量名)="val "(变量值)attr2="val"}。

{ config _ load file=' colors . conf ' }

{include file='header.tpl'}

{if $highlight_name}

欢迎光临,font color=' { # font color # } ' { $ name }!/font

{else}

欢迎,{$name}!

{/if}

{include file='footer.tpl'}

1.内置函数和自定义函数在模板中具有相同的语法。

2.内置函数会在smarty内部起作用,比如{if}、{section}和{strip},并且不能修改。

3.自定义函数通过插件机制工作。它们是附加功能。喜欢就随意修改,也可以自己加。例如{html_options}和{html_select_date}。

属性

大多数函数都有自己的属性,以便明确地解释或修改它们的行为。smarty函数的属性与HTML中的非常相似。静态值不需要引号,但是字符串建议用引号。你可以使用普通的smarty变量或者带调节器的变量作为属性值,它们不需要引号。甚至可以使用php函数返回值和复杂表达式作为属性值。

Math

数学可以直接影响变量值。

{$foo 1}

{$foo*$bar}

{ $ foo | truncate:' ` $ fooTruncCount/$ barTruncFactor-1 `' }

{ assign var=' foo ' value=' ` $ foo $ bar `' }

忽略smarty语法

需要忽略Smarty对一些句子片段的解析。一个典型的例子是模板中嵌入的javascript或Css代码。原因是这些语言使用了与Smarty的默认分隔符“{”和“}”相同的符号。

方法:避免这种情况的一个好习惯是将你的javascript/css代码分离出来保存为一个独立的文件,然后用html方法链接到模板上。这也有助于浏览器缓存脚本。如果你想在javascript/css中嵌入Smarty变量和方法,请看下面的应用。

在Smarty template中,如果' { '和' } '花括号包含空格,整个{}内容将被忽略。您可以设置Smarty类变量$auto_literal=false来取消此规则。

脚本

//下面的大括号被Smarty忽略。Smarty将忽略下面的大括号。

//因为它们中间有空格,所以用空白圆整。

功能工具栏{

alert('foobar!');

}

//这个下面的内容会需要字面转义会保持原来的意思输出。

{literal}

函数bazzy {alert('foobar!');}

{/literal}

/脚本

{literal}…{/literal}块用于忽略模板语法的分析。您也可以使用{idelim}、{rdelim}标签或{smarty。Idelim}、{smarty。Idelim}、{smarty.rdelim}变量来忽略单个大括号(注意:后两种方法主要用于输出模板中的左右大括号。

对更多Smarty相关内容感兴趣的读者可以查看我们的专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》和《php+mysql数据库操作入门教程》。

我希望这篇文章能帮助你设计基于smarty模板的PHP程序。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • word文档无法编辑是怎么回事-
  • 华为手机怎么设置返回键(华为手机下面的三个按键设置方法)
  • lumia950怎么样(Lumia950体验分享)
  • otg连接是什么意思(OTG连接手机方法)
  • 笔记本触摸板怎么右键(笔记本电脑触控板手势操作设置)
  • 真我x7怎么样(realme X7 系列体验)
  • 苹果的A16处理器有多强(苹果的A16处理器的介绍)
  • 小米互传怎么用(小米手机的连接与共享教程)
  • 怎么设置电脑桌面图标自动对齐 设置电脑桌面自动整理图标的方法
  • 宽带错误651最简单解决方法(处理宽带错误651的措施)
  • 大学生手机有什么推荐(大学生换手机攻略)
  • 天玑1100和骁龙778g哪个好(骁龙778G、天玑900、天玑1100购选建议)
  • yum update 升级报错的解决办法
  • Windows10禁用屏保教程
  • 连接wifi显示无互联网连接怎么办(无线连上了却不能上网处理绝招)
  • 留言与评论(共有 条评论)
       
    验证码: