国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - Smarty模板語法詳解

Smarty模板語法詳解

2021-08-10 16:01Sams-ara PHP教程

這篇文章主要介紹了Smarty模板語法,結合實例形式詳細分析了Smarty模板的注釋、變量、引號、函數等基本語法與使用技巧,需要的朋友可以參考下

本文實例講述了Smarty模板語法。分享給大家供大家參考,具體如下:

所有模版標簽用分隔符包圍,默認為“{”和“}”。

模板注釋

模板注釋被星號包圍,兩邊星號被定界符“{ }”包圍,如 { smarty * }

smarty注釋不會在模板文件的最后輸出中出現,這與不同(譯注:html注釋在頁面源碼中可見,而smarty注釋則不能)。

如下簡單代碼片{smarty}在源碼中不可見,而源碼可見。

?
1
2
3
4
5
6
7
8
9
10
<html>
<head>
<tltle>smarty</tltle>
<body>
{*smarty*}
smarty
<!--smarty-->
</body>
</head>
</html>

變量初步

模板變量用美元符號開始,可以包含數字、字母和下劃線,這php很像。(注意:配置文件變量是一個不用美元符號開始,可以包含數字、字母和下劃線,這php很像。(注意:配置文件變量是一個不用美元符號,而是用#號包圍著變量(#hashmarks#),或者是一個$smarty.config形式的變量。)

這里config不做說明,下面是變量示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
{$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=fun value=[1=>'one',2=>'tow']}    //數組定義
{$fun=stlen($a)}
{fun=function($a,$b)}     //用作函數參數
{$array.a=1}
{$array.a.b.c($array[a][b][c])=1}  //數組索引賦值
{$object->method1($x)->method2($y)}   //對象鏈

雙引號中插入變量

1、Smarty可以識別嵌入在雙引號中的變量,只要此變量只包含數字、字母、下劃線和中括號[]。
2、對于句號,數組和對象引用等的符號此變量必須用兩個反引號`。
3、Smarty3增加了雙引號對Smarty標簽的支持。在需要包含調節器變量、插件、php函數返回值的情形中非常實用。

?
1
2
3
4
5
6
7
8
9
10
{function var="test $foo test"}       // 識別 $foo
{func var="test $foo_bar test"}       // 識別 $foo_bar
{func var="test `$foo[0]` test"}     // 識別 $foo[0]
{func var="test `$foo[bar]` test"}   // 識別 $foo[bar]
{func var="test $foo.bar test"}       // 識別  $foo (無法識別 $foo.bar)
{func var="test `$foo.bar` test"}    // 識別 $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”}.

?
1
2
3
4
5
6
7
8
{config_load file="colors.conf"}
{include file="header.tpl"}
{if $highlight_name}
  Welcome, <font color="{#fontColor#}">{$name}!</font>
{else}
  Welcome, {$name}!
{/if}
{include file="footer.tpl"}

1、在模板里無論是內置函數還是自定義函數都有相同的語法。
2、內置函數將在smarty內部工作,例如{if}、{section}和{strip},不能修改他們。
3、自定義函數通過插件機制起作用,它們是附加函數。只要你喜歡,可以隨意修改,你也可以自行添加。例如{html_options}和{html_select_date}。

屬性

大多數函數都帶有自己的屬性以便于明確說明或者修改他們的行為,smarty函數的屬性很像HTML中的屬性。靜態數值不需要加引號,但是字符串建議使用引號。可以使用普通smarty變量,也可以使用帶調節器的變量作為屬性值,它們也不用加引號。你甚至可以使用php函數返回值和復雜表達式作為屬性值。

Math

數學運算可以直接作用到變量值。

?
1
2
3
4
{$foo+1}
{$foo*$bar}
{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}
{assign var="foo" value="`$foo+$bar`"}

忽略smarty語法

忽略Smarty對某些語句段的解析很有必要。一種典型的情況是嵌入到模板中的javascript或Css代碼。原因在于這些語言使用與Smarty默認定界符‘{'和‘}'一樣的符號。

方法:一個避免出現這種情況的好習慣是把你的javascript/css代碼分離出來保存成一個獨立文件,再用html方法鏈接到模版中。這樣做也有利于瀏覽器緩存腳本。如果你想把Smarty變量、方法嵌入到javascript/css,請看下面的運用。

在Smarty模版,如果‘{'和‘}'大括號里包含有空格那么整個{}內容會被忽略,你可以設置Smarty類變量$auto_literal=false來取消這種規則。

?
1
2
3
4
5
6
7
8
9
10
11
<script>
// the following braces are ignored by Smarty 以下大括號的內容會被Smarty忽略
// since they are surrounded by whitespace 因為它們里面有空格
function foobar {
alert('foobar!');
}
// this one will need literal escapement 下面的內容會保持原義輸出
{literal}
function bazzy {alert('foobar!');}
{/literal}
</script>

{literal}…{/literal}塊被用來忽略模版語法的解析,你也可以用{idelim},{rdelim}標簽或{smarty.Idelim}{smarty.Idelim}{smarty.rdelim}變量來忽略個別大括號(譯注:后面兩種方法主要用來在模版中輸出左右大括號)。

希望本文所述對大家基于smarty模板的PHP程序設計有所幫助。

原文鏈接:https://blog.csdn.net/jingege0318/article/details/54142312

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产成人精品av | 久久香蕉国产视频 | 国产精品一区二区不卡 | 亚洲 精品 综合 精品 自拍 | 欧美精品一二三区 | 国产精品久久久久久久久久三级 | 日韩在线二区 | 中文二区| 欧美日韩成人 | 一区二区三区亚洲 | 精品久久国产老人久久综合 | 日韩美女乱淫aaa高清视频 | 91成人小视频 | 欧美透逼视频 | 精品视频在线免费观看 | 久久久久久综合 | 中文字幕一区二区三区在线视频 | 99亚洲精品| 免费观看www7722午夜电影 | 欧美激情国产日韩精品一区18 | 夜夜操天天操 | 99爱在线观看 | 黄视频在线观看免费 | 国产亚洲视频在线 | 国产视频一区二区 | 久久精品美女 | 国偷自产一区二区免费视频 | 国产精品亚洲自拍 | 免费黄色大片网址 | 成年免费视频 | 一级毛毛片 | 久久精品一区二区三区四区 | 国产专区一区二区三区 | 免费在线一区二区 | 久久精品在线 | 欧美视频免费在线 | 国产黄色av | 久久这里只有国产精品 | 国产小视频在线 | 国产乱码精品一区二区三区中文 | 羞羞视频在线看 |