摘要:一概念變量修飾器調(diào)節(jié)器可用于變量,自定義函數(shù)和字符串。請(qǐng)使用符號(hào)和修飾器名稱應(yīng)用修飾器。變量修飾器由賦予的參數(shù)值決定其行為。與之相反將變量值轉(zhuǎn)成大寫(xiě)字母所有字母,無(wú)參數(shù)。它與修飾器的效果剛好相反。它們會(huì)按復(fù)合的順序來(lái)作用于變量,從左到右。
一、概念
二、修飾器用法簡(jiǎn)介 capitalize變量修飾器(調(diào)節(jié)器)可用于變量,自定義函數(shù)和字符串。 請(qǐng)使用‘|’符號(hào)和修飾器名稱應(yīng)用修飾器。 變量修飾器由賦予的參數(shù)值決定其行為。 參數(shù)由‘:’符號(hào)分開(kāi)。
使變量?jī)?nèi)容里的每個(gè)單詞的第一個(gè)字母大寫(xiě)。 與PHP函數(shù)的 ucwords( )相似。
參數(shù)1:帶數(shù)字的單詞是否也頭字母大寫(xiě)(Boolean,默認(rèn):false)
參數(shù)2:設(shè)置單詞內(nèi)其他字母是否小寫(xiě),如"aA" 變成 "Aa"(Boolean,默認(rèn):false)
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "I want to buy a samsung s8"); $smarty->display("index.tpl"); index.tpl: {$articleTitle} {$articleTitle|capitalize} {$articleTitle|capitalize:true} OUTPUT: I want to buy a samsung s8 I Want To Buy A Samsung s8 I Want To Buy A Samsung S8
cat注:lower修飾器將變量值轉(zhuǎn)成小寫(xiě)字母(所有字母),無(wú)參數(shù)。
upper與之相反將變量值轉(zhuǎn)成大寫(xiě)字母(所有字母),無(wú)參數(shù)。
連接多個(gè)變量。
參數(shù)1:需要連接的變量(String)。
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "To be or not to be"); $smarty->display("index.tpl"); index.tpl: {$articleTitle} {$articleTitle|cat:"it is a question"} OUTPUT: To be or not to be To be or not to be it is a questioncount_characters
計(jì)算變量?jī)?nèi)容里有多少個(gè)字符。
參數(shù)1:計(jì)算總數(shù)時(shí)是否包括空格字符(Boolean,默認(rèn):false)。
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "Cold Wave Linked to Temperatures"); $smarty->display("index.tpl"); index.tpl: {$articleTitle} {$articleTitle|count_characters} {$articleTitle|count_characters:true} OUTPUT: Cold Wave Linked to Temperatures. 29 33count_paragraphs
計(jì)算變量?jī)?nèi)容有多少個(gè)段落。
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "I am a good guy! Yes I am!"); $smarty->display("index.tpl"); index.tpl: {$articleTitle} {$articleTitle|count_paragraphs} OUTPUT: I am a good guy! Yes I am! 2count_sentences
計(jì)算變量?jī)?nèi)容有多少個(gè)句子。 每個(gè)句子必須以點(diǎn)號(hào)、問(wèn)號(hào)或者感嘆號(hào)結(jié)尾。
(./?/!)
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "I am a good guy.Yes I am! Are you sure? Yes!"); $smarty->display("index.tpl"); index.tpl: {$articleTitle} {$articleTitle|count_sentences} OUTPUT: I am a good guy.Yes I am! Are you sure? Yes! 4count_words
用于計(jì)算變量?jī)?nèi)容有多少個(gè)單詞。
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "I am a good guy.Yes I am! Are you sure? Yes!"); $smarty->display("index.tpl"); index.tpl: {$articleTitle} {$articleTitle|count_words} OUTPUT: I am a good guy.Yes I am! Are you sure? Yes! 12date_format
將日期和時(shí)間格式化成strftime( )的格式。 時(shí)間可以是unix的 時(shí)間戳, DateTime 對(duì)象, mysql時(shí)間戳,或者月日年格式的字符串,與PHP函數(shù)strtotime( )類似。并且可以對(duì)date_format的格式有完全的控制。 如果傳遞到date_format的時(shí)間為空, 而第二個(gè)參數(shù)傳遞了值,那么第二個(gè)參數(shù)將作為需要格式化的時(shí)間。
參數(shù)1:輸出時(shí)間的格式定義(String,默認(rèn):%b %e, %Y)
參數(shù)2:如果輸入為空,則作為默認(rèn)時(shí)間(String,默認(rèn):n/a)
index.php: $smarty = new Smarty; $config["date"] = "%I:%M %p"; $config["time"] = "%H:%M:%S"; $smarty->assign("config", $config); $smarty->assign("yesterday", strtotime("-1 day")); $smarty->display("index.tpl"); index.tpl: {$smarty.now|date_format} {$smarty.now|date_format:"%D"} {$smarty.now|date_format:$config.date} {$yesterday|date_format} {$yesterday|date_format:"%A, %B %e, %Y"} {$yesterday|date_format:$config.time} OUTPUT: Jan 1, 2022 01/01/22 02:33 pm Dec 31, 2021 Monday, December 1, 2021 14:33:00
default附:date_format支持格式
W3C DATE_FORMAT( ) 函數(shù)
為變量設(shè)置默認(rèn)值。 當(dāng)變量是unset或者empty的字符串時(shí),默認(rèn)值將顯示。 必須要有一個(gè)參數(shù)。
參數(shù)1:當(dāng)變量為空時(shí)輸出的值(String)
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "I am a good guy.Yes I am!"); $smarty->assign("email", ""); $smarty->display("index.tpl"); index.tpl: {$articleTitle|default:"no title"} {$myTitle|default:"no title"} {$email|default:"No email address available"} OUTPUT: I am a good guy.Yes I am! no title No email address availableescape
escape可用于將變量編碼或轉(zhuǎn)換成 html, url, 單引號(hào), 十六進(jìn)制, 十六進(jìn)制實(shí)體, javascript 和 email地址。 默認(rèn)是:html。
參數(shù)1:這是escape轉(zhuǎn)換后的格式(String,默認(rèn):html,可取值:html, htmlall, url, urlpathinfo, 單引號(hào), 十六進(jìn)制, 十六進(jìn)制實(shí)體, javascript, email地址)
參數(shù)2:傳遞給htmlentities( )的字符集類型(String,默認(rèn):UTF-8,可取值:ISO-8859-1, UTF-8, 和其他 htmlentities()支持的字符集)
參數(shù)3:兩次轉(zhuǎn)換實(shí)體,& 到 & (僅在 html 和 htmlall 使用)(Boolean,默認(rèn):true)
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", ""Stiff Opposition Expected to Casketless Funeral Plan"" ); $smarty->assign("EmailAddress","smarty@example.com"); $smarty->display("index.tpl"); index.tpl & OUTPUT: {$articleTitle} "Stiff Opposition Expected to Casketless Funeral Plan" {$articleTitle|escape} 'Stiff Opposition Expected to Casketless Funeral Plan' {$articleTitle|escape:"html"} 'Stiff Opposition Expected to Casketless Funeral Plan' {$articleTitle|escape:"htmlall"} 'Stiff Opposition Expected to Casketless Funeral Plan' click here click here {$articleTitle|escape:"quotes"} "Stiff Opposition Expected to Casketless Funeral Plan" {$EmailAddress|escape:"hexentity"} {$EmailAddress|escape:"mail"} {* this converts to email to text *} bob..snip..et {"mail@example.com"|escape:"mail"} smarty [AT] example [DOT] com
indent注:unescape可以解碼entity, html 和 htmlall等的編碼。 它與escape 修飾器的效果剛好相反。
縮進(jìn)每一行的字符串,默認(rèn)是縮進(jìn)4個(gè)空格。 可選的參數(shù)可以設(shè)置縮進(jìn)的空格數(shù)量。 可選的第二個(gè)參數(shù)設(shè)置縮進(jìn)使用的字符,如用 "t" 來(lái)代替空格縮進(jìn)。
參數(shù)1:設(shè)置縮進(jìn)多少空格(Integer,默認(rèn):4)
參數(shù)2:設(shè)置用什么字符來(lái)進(jìn)行縮進(jìn)(String,默認(rèn):一個(gè)空格)
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "NJ judge to rule on nude beach. Sun or rain expected today, dark tonight. Statistics show that teen pregnancy drops off significantly after 25.""); $smarty->display("index.tpl"); index.tpl: {$articleTitle} {$articleTitle|indent} {$articleTitle|indent:10} {$articleTitle|indent:1:" "} OUTPUT: NJ judge to rule on nude beach. Sun or rain expected today, dark tonight. Statistics show that teen pregnancy drops off significantly after 25. NJ judge to rule on nude beach. Sun or rain expected today, dark tonight. Statistics show that teen pregnancy drops off significantly after 25. NJ judge to rule on nude beach. Sun or rain expected today, dark tonight. Statistics show that teen pregnancy drops off significantly after 25. NJ judge to rule on nude beach. Sun or rain expected today, dark tonight. Statistics show that teen pregnancy drops off significantly after 25.nl2br
將變量值中的"n"回車全部轉(zhuǎn)換成HTML的
。 等同于PHP的 nl2br()函數(shù)。
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "I am a good guy. Yes I am!") $smarty->display("index.tpl"); index.tpl: {$articleTitle|nl2br} OUTPUT: I am a good guy.regex_replace
Yes I am!
用正則表達(dá)式搜索和替換變量值。 使用PHP的 preg_replace()函數(shù)進(jìn)行。
參數(shù)1:正則表達(dá)式(String,默認(rèn):n/a)
參數(shù)2:替換的字符(String,默認(rèn):n/a)
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "I am a good guy. Yes I am!") $smarty->display("index.tpl"); index.tpl: {$articleTitle} {$articleTitle|regex_replace:"/[ ]/":" "} OUTPUT: I am a good guy. Yes I am! I am a good guy. Yes I am!
spacify注:replace修飾器用法相似,對(duì)變量進(jìn)行簡(jiǎn)單的搜索和替換。 等同于PHP函數(shù)的 str_replace()。
spacify會(huì)在變量的字符串中插入空格。 你可以設(shè)置插入的是空格或者別的字符。
參數(shù)1:插入字符間的字符(String,默認(rèn):一個(gè)空格)
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "Something Went Wrong in Jet Crash, Experts Say") $smarty->display("index.tpl"); index.tpl: {$articleTitle} {$articleTitle|spacify} {$articleTitle|spacify:”^"} OUTPUT: Something Went Wrong in Jet Crash, Experts Say. S o m e t h i n g W .... snip .... s h , E x p e r t s S a y . S^o^m^e^t^h^i^n^g^.... snip .... ^e^r^t^s^ ^S^a^y^.string_format
格式化字符串,如浮點(diǎn)數(shù)等。 使用 sprintf()的PHP函數(shù)來(lái)進(jìn)行。
參數(shù)1:指定哪種格式 (sprintf)(String,默認(rèn):n/a)
index.php: $smarty = new Smarty; $smarty->assign("number", 3.1415926); $smarty->display("index.tpl"); index.tpl: {$number} {$number|string_format:"%.2f"} {$number|string_format:"%d"} OUTPUT: 3.1415926 3.14 3strip
轉(zhuǎn)換連續(xù)空格,回車和tab到單個(gè)空格或是指定字符串。
PS.如果希望轉(zhuǎn)換模板文字內(nèi)的空格,使用內(nèi)置的 {strip} 函數(shù)。
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", “I am so good that they all like me"); $smarty->display("index.tpl"); index.tpl: {$articleTitle} {$articleTitle|strip} {$articleTitle|strip:" "} OUTPUT: I am so good that they all like me I am so good that they all like me I am so good that they all like metruncate
截取字符串到指定長(zhǎng)度,默認(rèn)長(zhǎng)度是80.
參數(shù)1:截取的長(zhǎng)度(Integer,默認(rèn):80)
參數(shù)2:截取后替代顯示的字符,該字符長(zhǎng)度會(huì)被計(jì)算到截取長(zhǎng)度內(nèi)(String,默認(rèn):…)
參數(shù)3:默認(rèn)truncate會(huì)嘗試按單詞進(jìn)行截取。 如果你希望按字符截取(單詞可能會(huì)被截?cái)啵枰O(shè)置第三個(gè)參數(shù)TRUE。(Boolean,默認(rèn):false)
index.php: $smarty = new Smarty; $smarty->assign("articleTitle", "Two Sisters Reunite after Eighteen Years at Checkout Counter"); $smarty->display("index.tpl"); index.tpl: {$articleTitle} {$articleTitle|truncate} {$articleTitle|truncate:30} {$articleTitle|truncate:30:""} {$articleTitle|truncate:30:"---"} {$articleTitle|truncate:30:"":true} {$articleTitle|truncate:30:"...":true} {$articleTitle|truncate:30:"..":true:true} OUTPUT: Two Sisters Reunite after Eighteen Years at Checkout Counter Two Sisters Reunite after Eighteen Years at Checkout Counter Two Sisters Reunite after... Two Sisters Reunite after Two Sisters Reunite after--- Two Sisters Reunite after Eigh Two Sisters Reunite after E... Two Sisters Re..ckout Counterwordwrap
限制一行字符的長(zhǎng)度(自動(dòng)換行),效果與PHP函數(shù)wordwrap()一樣。
參數(shù)1:限定一行的長(zhǎng)度(Integer,默認(rèn):80)
參數(shù)2:換行符號(hào),可自定義換行字符(String,默認(rèn):n)
參數(shù)3:設(shè)置按單詞換行(FALSE),或者按字符換行(TRUE),默認(rèn)情況下,是根據(jù)單詞來(lái)?yè)Q行的,也就是按英文語(yǔ)法的自動(dòng)換行。 如果你希望按照字符來(lái)?yè)Q行(邊界的單詞將拆開(kāi)),那么可以設(shè)置 可選的第三個(gè)參數(shù)為TRUE
index.php: $smarty = new Smarty; $smarty->assign("articleTitle’,"Blind woman gets new kidney from dad she hasn"t seen in years"); $smarty->display("index.tpl"); index.tpl: $articleTitle} {$articleTitle|wordwrap:30} {$articleTitle|wordwrap:20} {$articleTitle|wordwrap:30:"三、復(fù)合修飾器
"} {$articleTitle|wordwrap:26:" ":true} OUTPUT: Blind woman gets new kidney from dad she hasn"t seen in years Blind woman gets new kidney from dad she hasn"t seen in years Blind woman gets new kidney from dad she hasn"t seen in years Blind woman gets new kidney
from dad she hasn"t seen in
years Blind woman gets new kidn ey from dad she hasn"t se en in years
可以聯(lián)合使用多個(gè)修飾器。 它們會(huì)按復(fù)合的順序來(lái)作用于變量,從左到右。 它們必須以“|” (豎線)進(jìn)行分隔。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/26105.html
摘要:還有安全特性,可以令模板源碼有強(qiáng)制的約束。并且業(yè)務(wù)邏輯和顯示邏輯分離,是的一個(gè)設(shè)計(jì)理念。是一個(gè)模板引擎,在應(yīng)用程序中,當(dāng)作層視圖層的組件來(lái)使用。不一定保證良好的程序設(shè)計(jì)或者達(dá)成顯示分離的目的,這還得需要開(kāi)發(fā)者和模板設(shè)計(jì)師的努力。 一、 Smarty的由來(lái) Smarty的主要設(shè)計(jì)理念是:干凈的分離顯示邏輯和程序代碼,在PHP為后端情況下,Smarty模板應(yīng)用在前端,增強(qiáng)PHP的前后端交互...
摘要:還有安全特性,可以令模板源碼有強(qiáng)制的約束。并且業(yè)務(wù)邏輯和顯示邏輯分離,是的一個(gè)設(shè)計(jì)理念。是一個(gè)模板引擎,在應(yīng)用程序中,當(dāng)作層視圖層的組件來(lái)使用。不一定保證良好的程序設(shè)計(jì)或者達(dá)成顯示分離的目的,這還得需要開(kāi)發(fā)者和模板設(shè)計(jì)師的努力。 一、 Smarty的由來(lái) Smarty的主要設(shè)計(jì)理念是:干凈的分離顯示邏輯和程序代碼,在PHP為后端情況下,Smarty模板應(yīng)用在前端,增強(qiáng)PHP的前后端交互...
摘要:本篇,我們就在自己的項(xiàng)目中使用來(lái)進(jìn)行依賴管理。輸入,即可安裝依賴到目錄中,并且自動(dòng)生成和。安裝依賴,提示從提示可以看出,讀取的是中的依賴,而不是最新的。訪問(wèn),正常工作。源碼分享書(shū)簽從零開(kāi)始打造自己的框架中文網(wǎng)中文文檔 Composer Composer 是 PHP5.3以上 的一個(gè)依賴管理工具。它允許你申明項(xiàng)目所依賴的代碼庫(kù),它會(huì)在你的項(xiàng)目中為你安裝他們。Composer 不是一個(gè)包管...
摘要:體現(xiàn)了業(yè)務(wù)與顯示的分離,盡量分離。就負(fù)責(zé)判斷條件,并取出數(shù)據(jù)來(lái)。顯示的工作盡量靠前頁(yè)面緩存緩存,重要概念。減輕了數(shù)據(jù)庫(kù)的壓力。控制局部不緩存在標(biāo)簽中控制,該標(biāo)簽不緩存。模板調(diào)用特殊方法使用對(duì)象注冊(cè)的方式來(lái)解決。文件命名函數(shù)名定 模板 數(shù)據(jù)與表現(xiàn)層的標(biāo)簽分離 smarty是PHP 與 HTML代碼的分離 小型模板類 $smarty 的工作流程: 把需要顯示的全局變量,賦值塞到對(duì)象內(nèi)部的...
摘要:最近工作中用到模板引擎,整理了一些用到的模板函數(shù)。模板中獲取服務(wù)端的值參數(shù)名模板中獲取服務(wù)端的值參數(shù)名模板中獲取服務(wù)端的值可以獲取或的值。 最近工作中用到 Smarty 模板引擎,整理了一些用到的模板函數(shù)。 假設(shè) smarty 的定界符為 {}。 模板中獲取服務(wù)端 $_GET 的值: {$smarty.get.參數(shù)名} 模板中獲取服務(wù)端 $_POST 的值: {$smarty.post...
閱讀 2862·2021-10-21 09:38
閱讀 2762·2021-10-11 10:59
閱讀 3049·2021-09-27 13:36
閱讀 1668·2021-08-23 09:43
閱讀 802·2019-08-29 14:14
閱讀 3040·2019-08-29 12:13
閱讀 3210·2019-08-29 12:13
閱讀 318·2019-08-26 12:24