Smarty模板變量調節器用法php
在smarty裏面,怎麼修飾文本和變量呢?固然,你能夠經過php函數處理文本,而後再經過assign()方法分配到模板,其實smarty提供了變量調節器可以很容易的處理文本,語法方式以下:
{$var|modifier1|modifier2|modifier3|…}
說明:1.無論應用了多少個函數,都應該以|來進行分離.
說明:2.參數用":"分開,如:html
{$str|truncate:40:"..."}
//截取字符串長度爲40,並以...結尾。正則表達式
marty模板中經常使用的變量調解函數
成員方法名
描 述
Scapitalize
將變量裏的全部單詞首字母大寫,參數值boolean型決定
帶數字的單詞是否首字大寫,默認不大寫
count_characters
計算變量值裏的字符個數,參數值boolean型決定是否計
算空格數,默認不計算空格
cat
將cat裏的參數值鏈接到給定的變量後面,默認爲空
count_paragraphs
計算變量裏的段落數量
count_sentences
計算變量裏句子的數量
count_words
計算變量裏的詞數
date_format
日期格式化,第一個參數控制日期格式,若是傳給date_format
的數據是空的,將使用第二個參數做爲默認時間
default
爲空變量設置一個默認值,當變量爲空或者未分配時,
由給定的默認值替代輸出
escape
用於html轉碼、url轉碼,在沒有轉碼的變量上轉換單引號、
十六進制轉碼、十六進制美化,或者JavaScript轉碼。
默認是html轉碼
indent
在每行縮進字符串,第一個參數指定縮進多少個字符,
默認是四個字符;第二個參數,指定縮進用什麼字符代替
lower
將變量字符串小寫
nl2br
全部的換行符將被替換成<br/>.功能同PHP中的nl2br()函數同樣
regex_replace
尋找和替換正則表達式,必須有兩個參數,參數1是替
換正則表達式,參數2使用什麼文本字串來替換
replace
簡單的搜索和替換字符串,必須有兩個參數,參數1是
將被替換的字符串,參數2是用來替換的文本
spacify
在字符串的每一個字符之間插入空格或者其餘的字符串.,
參數表示將在兩個字符之間插入的字符串,默認爲一個空格
string_format
是一種格式化浮點數的方法,例如十進制數,使用sprintf
語法格式化。參數是必須的,規定使用的格式化方式。%d
表示顯示整數,%.2f表示截取兩個浮點數
strip
替換全部重複的空格,換行和tab爲單個或者指定的字符串。
若是有參數則是指定的字符串
strip_tags
去除全部html標籤
truncate
從字符串開始處截取某長度的字符,默認是80個
upper
將變量改成大寫api
php代碼示例以下: //capitalize(首字母大寫): <{$a|capitalize}> //count_characters(字符計數): <{$b|count_characters}> //cat(鏈接字符串): <{$c|cat:world}> //count_paragraphs(計算段數)----(換行符\n): <{$d|count_paragraphs}> //count_sentences(計算句數): <{$e|count_sentences}> //count_words(計算詞數): <{$f|count_words}> //date_format(格式化日期): <{$smarty.now|date_format:"%y-%m-%d %H:%I:%S"}> //default(默認值): <{$biaoti|default:"no biaoti"}> //escape(編碼): <{$dz|escape}> //indent(首行縮進): <{$in|indent}> <{$in|indent:1:"\t"}> //nl2br換行符替換成: <{$con|nl2br}> //regex_replace 正則替換 <{$h|regex_replace:"/[\r\t\n]/":" <br/> "}> //replace(替換) <{$h|replace:"hello":"你好"}>
每每開發中有時候是知足不了需求的,那就能夠直接寫這些變量調節器,其實所謂的變量調節器就是一個函數,在這裏咱們本身建一個,首先在plugins文件夾裏面間創建一個php文件,命名必定按着他的規範。函數
modifier.capita.php編碼
function Smarty_modifier_capita($string){ //函數命名也是有規範的 return strtoupper(substr($string,0,1)).strtolower(substr($string,1)); } 模版文