亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > Smarty模板變量與調節(jié)器實例詳解

Smarty模板變量與調節(jié)器實例詳解

熱門標簽:哪里辦理400電話 高德地圖標注家 外呼系統(tǒng)撥打暫時無法接通 廣州防封卡外呼系統(tǒng)多少錢一個月 怎么向銷售公司推銷外呼系統(tǒng) 江西手機自動外呼防封系統(tǒng)是什么 長春人工外呼系統(tǒng)服務商 廣東地市地圖標注 仁和怎么申請400開頭的電話

本文實例講述了Smarty模板變量與調節(jié)器。分享給大家供大家參考,具體如下:

Smarty中assign說明

可能有人在學習smarty的時候已經學習了一些php框架,如tp、laravel、Yii等,這里拿tp框架的assign和smarty做一些比較。

$name=thinkphp;
$this->assign('name',$name);
$this->display();
$smarty=new Smarty();
$smarty->assign('name','smarty');
$smarty->display(index.tpl);

上面兩段代碼片分別是tp和smarty(千萬別混淆tp和smarty,一個是開源的框架,一個是模板設計引擎)。

tp在視圖模塊調用是 {$name}{$name},等同于php里的, ?php echo($name);?>,smarty中是在index.tpl用{$name}調用。注意模板標簽的{和$之間不能有任何的空格,否則標簽無效。

數(shù)組變量

$smarty = new Smarty;
$smarty->assign('smarty',
   array('name'=>'smarty'
   'user' => 'sm')));
$smarty->display('index.tpl');

index.tpl

{$smarty.name}br>
{$smarty.user}br>

?php
$smarty->assign('data',
  array(
  'smarty',
  'sm',
));
$smarty->display('index.tpl');
?>

index.tpl source:

{$Contacts[0]}br />
{$Contacts[1]}br />

在tp中的調用有兩種方法,如下:

$data[name]='thinkphp';
$data[user]='tp';
$this->a``ssign('data',$data);

這里視圖調用有兩種方法:

Name:{$data.name}
user:{$data.user}

name:{$data['name']}
name:{$data['user']}

同理對象如下所示:

首先是smarty:

name: {$data->name}br>
user: {$data->user}br>

tp:

$data->name='thinkphp';
$data->user='tp';
$this->assign('data',$data);
$this->display();

也有兩種調用方式:

name:{$data->name}
user:{$data->user}

name:{$data:name}
user:{$data:user}

smaty和thinkphp是不是有異曲同工之妙呢,所以我們學習框架之前學習smarty是很有幫助的。

變量調節(jié)器

為什么先講調節(jié)器呢,因為我覺得這部分其一比較通俗簡單,其二后面一些內容也會涉及到調節(jié)器的內容。按我的理解smarty的內置調節(jié)器就如同php里面內置函數(shù)一樣起簡化編程的作用。

調節(jié)器一般用法

變量調節(jié)器作用于變量、自定義函數(shù)或字符串。變量調節(jié)器的用法是:‘|'符號右接調節(jié)器名稱。變量調節(jié)器可接收附加參數(shù)影響其行為。參數(shù)位于調節(jié)器右邊,并用‘:'符號分開。

capitalize

變量所有單詞首字母大寫作用,和php的ucword()作用相同。

?php$smarty->assign('articleTitle', 'next x-men film, x3, delayed.');?>

//Where the template is:
{$articleTitle}
{$articleTitle|capitalize}
{$articleTitle|capitalize:true}

//Will output:
next x-men film, x3, delayed.
Next X-Men Film, x3, Delayed.
Next X-Men Film, X3, Delayed.

cat

將cat里的值后接到給定的變量后面。

?php$smarty->assign('articleTitle', "Psychics predict world didn't end");?>

//index.tpl:
{$articleTitle|cat:" yesterday."}

//OUTPUT:
Psychics predict world didn't end yesterday.

count_characters

?php
$smarty->assign('articleTitle', 'Cold Wave Linked to Temperatures.');
?>
//Where template is:
{$articleTitle}
{$articleTitle|count_characters}//默認是false不計算空格
{$articleTitle|count_characters:true}//true確定計算空格字符。

//Will output:
Cold Wave Linked to Temperatures.
29
33

count_paragraphs,count_sentences,count_words

分別是計算變量里的段落數(shù)量,計算變量里句子的數(shù)量,計算變量里的詞數(shù)作用,這里不一一舉例。

default

為變量設置一個默認值。當變量未設置或為空字符串時,將由給定的默認值替代其輸出。Default需要一個參數(shù)。

?php$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
$smarty->assign('email', '');?>

//Where template is:
{$articleTitle|default:'no title'}
{$myTitle|default:'no title'}
{$email|default:'No email address available'}

//Will output:
Dealers Will Hear Car Talk at Noon.
no title
Noemail address available

lower和upper

這里不想講多少,一個是將字符串小寫,一個大寫。

replace和regex_replace

使用正則表達式在變量中搜索和替換,語法來自Php的preg_repalce函數(shù)。一種在變量中進行簡單的搜索和替換字符串的處理。等同于php的str_replace()函數(shù)。 不懂得去看php手冊。雖然Smarty支持regex正則調節(jié)器,但最好還是直接使用php的正則表達式,要么使用自定義函數(shù)或調節(jié)器。因為正則法則屬于程序代碼,其并不認為是內容外在表現(xiàn)的一部份。

date_format和string_format

主要說明一下這兩個調節(jié)器。

date_format

本調節(jié)器將格式化的日期和時間經php函數(shù)strftime()處理。Unix時間戳、mysql時間戳及由年月日組成的字符串格式的日期可以傳遞到smarty經php函數(shù)strtotime()解析。設計者可以使用date_format完全控制日期格式,如果傳給date_format的日期為空值,但提供了第二個參數(shù),那么將使用第二參數(shù)格式化時間。
從Smarty-2.6.10開始,傳遞給date_format的數(shù)字值(除了mysql時間戳,見下文)總是當作unix時間戳。
在2.6.10版本之前,符合時間戳格式的數(shù)字型字符串(如YYYYMMDD)同樣可以經由php函數(shù)strtotime()處理,因為有時(取決于strtotime()的底層實現(xiàn))strtotime()接收日期字符串參數(shù),而不是時間戳。
唯一的例外是mysql時間戳:它們本身只有數(shù)字,并且是14個字符的長度(YYYYMMDDHHMMSS),mysql時間戳優(yōu)先于unix時間戳。

?php
$config['date'] = '%I:%M %p';
$config['time'] = '%H:%M:%S';
$smarty->assign('config', $config);
$smarty->assign('yesterday', strtotime('-1 day'));
?>

//This template uses $smarty.now to get the current time:
{$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}

//This above will output:
Jan 1, 2022
01/01/22
02:33 pm
Dec 31, 2021
Monday, December 1, 2021
14:33:00

date_format轉換標記:

%a - 當前區(qū)域星期幾的簡寫
%A - 當前區(qū)域星期幾的全稱
%b - 當前區(qū)域月份的簡寫
%B - 當前區(qū)域月份的全稱
%c - 當前區(qū)域首選的日期時間表達
%C - 世紀值(年份除以 100 后取整,范圍從 00 到 99)
%d - 月份中的第幾天,十進制數(shù)字(范圍從 01 到 31)
%D - 和 %m/%d/%y 一樣
%e - 月份中的第幾天,十進制數(shù)字,一位的數(shù)字前會加上一個空格(范圍從 ' 1' 到 ‘31')
%g - 和 %G 一樣,但是沒有世紀
%G - 4 位數(shù)的年份,符合 ISO 星期數(shù)(參見 %V)。和 %V 的格式和值一樣,只除了如果 ISO 星期數(shù)屬于前一年或者后一年,則使用那一年。
%h - 和 %b 一樣
%H - 24 小時制的十進制小時數(shù)(范圍從 00 到 23)
%I - 12 小時制的十進制小時數(shù)(范圍從 00 到 12)
%j - 年份中的第幾天,十進制數(shù)(范圍從 001 到 366)
%m - 十進制月份(范圍從 01 到 12)
%M - 十進制分鐘數(shù)
%n - 換行符
%p - 根據(jù)給定的時間值為 am' 或pm',或者當前區(qū)域設置中的相應字符串
%r - 用 a.m. 和 p.m. 符號的時間
%R - 24 小時符號的時間
%S - 十進制秒數(shù)
%t - 制表符
%T - 當前時間,和 %H:%M:%S 一樣
%u - 星期幾的十進制數(shù)表達 [1,7],1 表示星期一
%U - 本年的第幾周,從第一周的第一個星期天作為第一天開始
%V - 本年第幾周的 ISO 8601:1988 格式,范圍從 01 到 53,第 1 周是本年第一個至少還有 4 天的星期,星期一作為每周的第一天。(用 %G 或者 %g 作為指定時間戳相應周數(shù)的年份組成。)
%W - 本年的第幾周數(shù),從第一周的第一個星期一作為第一天開始
%w - 星期中的第幾天,星期天為 0
%x - 當前區(qū)域首選的時間表示法,不包括時間
%X - 當前區(qū)域首選的時間表示法,不包括日期
%y - 沒有世紀數(shù)的十進制年份(范圍從 00 到 99)
%Y - 包括世紀數(shù)的十進制年份
%Z 或 %z - 時區(qū)名或縮寫
%% - 文字上的 `%' 字符

string_format

一種格式化字符串的方法,例如格式化為十進制數(shù)等等。實際運用的是php的sprintf()函數(shù)。

?php
$smarty->assign('number', 23.5787446);
?>

//Where template is:
{$number}
{$number|string_format:"%.2f"}
{$number|string_format:"%d"}

//Will output:
23.5787446
23.58
24

獲取配置文件變量

加載配置文件后,配置文件中的變量需要用兩個井號”#”包圍或者是smarty的保留變量$smarty.config.來調用(下節(jié)將講到),第二種語法在變量作為屬性值嵌入至引號的時候非常有用,詳細可參考雙引號里值的嵌入。

假如配置文件如下:

//config file - foo.conf:
pageTitle = "This is mine"
bodyBgColor = '#eeeeee'
tableBorderSize = 3
tableBgColor = "#bbbbbb"
rowBgColor = "#cccccc"

調用方法如下:

{config_load file='foo.conf'}//{config_load}是一個smarty內置函數(shù)。用來從配置文件中加載config變量(#variables#)到模版
html>
title>{#pageTitle#}/title>
body bgcolor="{#bodyBgColor#}">
table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
tr bgcolor="{#rowBgColor#}">
td>First/td>
td>Last/td>
td>Address/td>
/tr>
/table>
/body>
/html>

保留變量

我們一般訪問環(huán)境變量的時候就使用保留變量{$smarty}。

請求變量諸如GET,GET,_POST,COOKIE,COOKIE,_SERVER, ENVandENVand_SESSION (參考requestvarsorder和requestvarsorder和request_use_auto_globals) 下面舉例說明他們的用法:

//http://www.example.com/index.php?page=fo
{$smarty.get.page}//從URL獲取page的值,等價于$_GET['page']
{$smarty.post.page}//獲取page的變量,等價于$_POST['page']
{$smarty.cookies.username}//獲取cookie信息,等價于$_COOKIE['username']
{$smarty.env.PATH}//獲取PATG環(huán)境變量
{$smarty.session.id}//獲取會話變量,等價于$_SESSION['id']
{$smarty.request.username}

盡管Smarty提供了直接訪問php超級變量的便利,但仍需謹慎使用。一般來說,GET、POST和REQUEST通常用來直接取值,但更常用的方法是通過訪問SERVER、ENV、COOKIE、SESSION變量以防止(不安全值)混進模版底層代碼。一個好的習慣是給模板變量賦具體的初始值。

1.{$smarty.now}

返回自從Unix 紀元(格林威治時間 1970 年1月1日00:00:00)到當前時間的秒數(shù),可以直接通過變量調節(jié)器date_format輸出顯示。應注意的是time()在每次觸發(fā)時被調用;例如,腳本執(zhí)行完需要3秒鐘,在始末分別調用$smarty.now的話將顯示3秒的差異。

{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}

2.{#smarty.const}

訪問php常量

?php// the constant defined in phpdefine('MY_CONST_VAL','CHERRIES');?>
//Output the constant in a template with{$smarty.const.MY_CONST_VAL}
?php
 // php定義常量
 define('MY_CONST_VAL','CHERRIES');?>

3.{$smarty.capture}

可以通過{$smarty.capture}變量捕獲內置的{capture}…{/capture}模版輸出。

4.{$smarty.config}

獲取配置變量

5.{$smarty.section}

{$smarty.section}用來指向{section}循環(huán)的屬性,里面包含一些有用的值,比如.first/.index等。

6.{$smarty.template}

返回經過處理的當前模板名(不包括目錄)。

7.{$smarty.current_dir}

返回經過處理的當前模板目錄名。

8{$smarty.version}、$smarty.block.child}、{$smarty.block.parent}{$smarty.ldelim}、{$smarty.rdelim}

用的少,不作說明,可以查看手冊了解更多內容。

更多關于Smarty相關內容感興趣的讀者可查看本站專題:《smarty模板入門基礎教程》、《PHP模板技術總結》、《PHP基于pdo操作數(shù)據(jù)庫技巧總結》、《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

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

您可能感興趣的文章:
  • Smarty3配置及入門語法
  • 避免Smarty與CSS語法沖突的方法
  • Smarty中的注釋和截斷功能介紹
  • smarty簡單模板變量輸出方法
  • Smarty保留變量用法分析
  • Smarty變量用法詳解
  • PHP模板引擎Smarty內置變量調解器用法詳解
  • PHP模板引擎Smarty自定義變量調解器用法
  • smarty自定義函數(shù)用法示例
  • PHP模板引擎Smarty內建函數(shù)詳解
  • Smarty模板語法詳解

標簽:湘西 海北 黔東 廈門 梅河口 濮陽 文山 惠州

巨人網絡通訊聲明:本文標題《Smarty模板變量與調節(jié)器實例詳解》,本文關鍵詞  Smarty,模板,變量,與,調節(jié)器,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Smarty模板變量與調節(jié)器實例詳解》相關的同類信息!
  • 本頁收集關于Smarty模板變量與調節(jié)器實例詳解的相關信息資訊供網民參考!
  • 推薦文章
    免费一级片网站| 国产视频在线免费观看| 午夜精品国产自在现线拍| 国产视频久久久久| 美女免费毛片| 午夜精品国产自在现线拍| 99热热久久| 天天做日日爱| 国产一区精品| 九九久久国产精品大片| 一本伊大人香蕉高清在线观看| 国产伦久视频免费观看视频| 韩国毛片免费大片| 日韩综合| 日韩一级黄色| 亚欧视频在线| 欧美另类videosbestsex高清| 欧美一区二区三区性| 天天色色网| 国产高清在线精品一区二区| 尤物视频网站在线观看| 99热视热频这里只有精品| 日韩一级精品视频在线观看| 亚洲女初尝黑人巨高清在线观看| 国产高清在线精品一区a| 久久99青青久久99久久| 亚洲www美色| 午夜家庭影院| 你懂的日韩| 久久99这里只有精品国产| 免费一级生活片| 二级特黄绝大片免费视频大片| a级毛片免费全部播放| 亚久久伊人精品青青草原2020| 精品视频在线观看视频免费视频 | 日韩在线观看网站| 欧美国产日韩在线| 日本伦理网站| 国产国语在线播放视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久精品道一区二区三区| 日韩专区亚洲综合久久| 国产成人精品综合| 久久久久久久男人的天堂| 日韩一级黄色大片| 91麻豆爱豆果冻天美星空| 亚飞与亚基在线观看| 日韩avdvd| 韩国毛片免费| 精品视频在线观看一区二区| 久久99中文字幕久久| 韩国毛片| 久久国产一区二区| 日本伦理网站| 四虎久久精品国产| 国产不卡在线播放| 久久久久久久久综合影视网| 国产网站免费视频| 欧美一级视频免费| 精品国产亚一区二区三区| 精品视频一区二区三区免费| 国产亚洲免费观看| 国产成a人片在线观看视频 | 成人a大片在线观看| 国产a一级| 国产激情一区二区三区| 精品久久久久久免费影院| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 久久99中文字幕久久| 国产一区二区精品| 999久久狠狠免费精品| 日本免费乱人伦在线观看 | 国产一级生活片| 国产不卡在线看| 香蕉视频久久| 国产精品免费久久| 精品在线免费播放| 久久精品成人一区二区三区| 精品国产亚一区二区三区| 国产成人女人在线视频观看| 韩国三级视频在线观看| 四虎久久精品国产| 国产伦精品一区三区视频| 精品毛片视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久久成人综合网| 日本免费乱人伦在线观看 | 精品国产一区二区三区久久久狼| 欧美激情一区二区三区视频 | 黄视频网站在线看| 日本乱中文字幕系列| 黄色免费三级| 国产91精品露脸国语对白| 久久国产精品自由自在| 99热视热频这里只有精品| 欧美大片一区| 九九九在线视频| 四虎影视久久久| 日韩免费片| 国产一区二区精品久久91| 午夜久久网| 精品国产亚洲人成在线| 日韩男人天堂| 日本伦理黄色大片在线观看网站| 一级女性全黄久久生活片| 日韩免费在线| 中文字幕一区二区三区 精品| 日本伦理网站| 日韩女人做爰大片| 国产网站免费视频| 国产91精品系列在线观看| 日韩中文字幕在线亚洲一区| 免费国产在线视频| 韩国毛片 免费| 91麻豆精品国产高清在线| 国产91视频网| 国产麻豆精品免费密入口| 二级特黄绝大片免费视频大片| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 一a一级片| 天天做人人爱夜夜爽2020| 黄色短视屏| 精品久久久久久中文| 一a一级片| 国产伦久视频免费观看 视频| a级毛片免费观看网站| 中文字幕一区二区三区 精品| 国产美女在线观看| 毛片高清| 久久国产影院| 精品视频在线观看一区二区| 国产成人精品综合在线| 91麻豆tv| 国产不卡精品一区二区三区| 色综合久久天天综线观看| 国产麻豆精品免费视频| 国产麻豆精品hdvideoss| 日韩一级黄色| 黄视频网站在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 99热精品在线| 91麻豆精品国产自产在线| 精品国产一区二区三区免费| 国产精品免费久久| 日韩在线观看网站| 欧美18性精品| 999精品影视在线观看| 成人免费一级毛片在线播放视频| 韩国三级视频在线观看| 成人a大片在线观看| 国产一区二区精品| 日本在线www| 日韩在线观看视频黄| 国产高清视频免费观看| 精品国产一区二区三区免费| 亚洲wwwwww| 一级女性大黄生活片免费| 免费国产在线视频| 韩国三级视频网站| 九九免费高清在线观看视频| 亚洲天堂在线播放| 国产成人精品一区二区视频| 天天做日日爱| 亚洲 欧美 成人日韩| 国产成人精品综合| 亚洲 欧美 成人日韩| 一本伊大人香蕉高清在线观看| 欧美激情伊人| 韩国三级视频网站| 国产一区精品| 久久99青青久久99久久| 91麻豆精品国产自产在线观看一区 | 国产综合91天堂亚洲国产| 一本高清在线| 91麻豆爱豆果冻天美星空| 精品国产一区二区三区久久久蜜臀| 中文字幕一区二区三区 精品| 日韩一级黄色大片| 色综合久久手机在线| 精品视频在线观看一区二区三区| 精品国产亚一区二区三区| a级黄色毛片免费播放视频| 台湾美女古装一级毛片| 欧美一级视| 日日爽天天| 国产视频一区在线| 日韩在线观看免费完整版视频| 国产精品1024永久免费视频| 欧美a级片视频| 91麻豆精品国产片在线观看| 欧美日本免费| 韩国三级香港三级日本三级| 国产精品12| 精品视频在线观看视频免费视频 | 九九热精品免费观看| 欧美爱色| 免费一级片在线| 青青青草视频在线观看| 香蕉视频久久| 免费国产在线观看不卡|