国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP模板引擎Smarty內建函數詳解

2020-03-22 18:06:53
字體:
來源:轉載
供稿:網友
本文實例講述了PHP模板引擎Smarty內建函數。分享給大家供大家參考,具體如下:Smarty 的內建函數:Smarty自帶一些內建函數,內建函數是模板語言的一部分,用戶不能創建名稱和內建函數一樣的自定義函數,也不能修改內建函數。下面對 Smarty 中的內建函數進行說明,并加以實例:實例中使用到的 Smarty 模板引擎初始化文件 init.inc.php 和主文件 index.phpinit.inc.php define('ROOT_PATH', dirname(__FILE__)); //設置網站根目錄 require ROOT_PATH.'/libs/Smarty.html' target='_blank'>class.php'; //加載 Smarty 模板引擎 $_tpl = new Smarty(); //創建一個實例對象 $_tpl- template_dir = ROOT_PATH.'/tpl/'; //重新指定模板目錄 $_tpl- compile_dir = ROOT_PATH.'./com/'; //重新指定編譯目錄 $_tpl- left_delimiter = ' //重新指定左定界符 $_tpl- right_delimiter = '} //重新指定右定界符
meta http-equiv="Content-Type" content="text/html; charset=utf-8" title Capture /title /head body !-- 定義capture -- {capture name="foo"} 這里是 capture 函數里面的內容,默認是不顯示的。 {/capture} !-- 調用capture,使用的是 Smarty 中的保留變量{$smarty.capture} -- {$smarty.capture.foo} /body /html 2、config_load
local 加載數據的作用域,取值必須為local, parent 或 global. local 說明該變量的作用域為當前模板. parent 說明該變量的作用域為當前模板和當前模板的父模板(調用當前模板的模板). global 說明該變量的作用域為所有模板.
說明加載的變量是否全局可見,等同于 scope=parent. 注意: 當指定了 scope 屬性時,可以設置該屬性,但模板忽略該屬性值而以 scope 屬性為準。
config_load 函數用于從配置文件中加載變量,關于 config_load 函數的使用,可參考前面一篇《PHP模板引擎Smarty之配置文件在模板變量中的使用方法示例》。3、include
include 函數用于在當前模板中包含其它模板, 當前模板中的變量在被包含的模板中可用. 必須指定 file 屬性,該屬性指明模板資源的位置。如果設置了 assign 屬性,該屬性對應的變量名用于保存待包含模板的輸出,這樣待包含模板的輸出就不會直接顯示了。請看下面的示例:/tpl/index.tpl{include file="header.tpl"}{* body of template goes here *}{include file="footer.tpl"}4、if,elseif,elseSmarty 中的 if 語句和 php 中的 if 語句一樣靈活易用,并增加了幾個特性以適宜模板引擎. if 必須于 /if 成對出現. 可以使用 else 和 elseif 子句。可以使用以下條件修飾詞:eq、ne、neq、gt、lt、lte、le、gte、ge、is even、is odd、is not even、is not odd、not、mod、div by、even by、odd by、==、!=、 、 、 =、 =. 使用這些修飾詞時必須和變量或常量用空格格開。下面對這些修飾符表示的意思進行說明:
5、ldelim 和 rdelim用于輸出分隔符,也就是大括號 "{" 和 "}". 模板引擎總是嘗試解釋大括號內的內容,因此如果需要輸出大括號,請使用此方法。請看下面的示例:/tpl/index.tpl html head meta http-equiv="Content-Type" content="text/html; charset=utf-8" title ldelim 和 rdelim /title /head body {ldelim} funcname {rdelim} 是 Smarty 中的一個函數。 !-- 執行結果: {funcname} 是 Smarty 中的一個函數。 -- /body /html 6、literalliteral 標簽區域內的數據將被當作文本處理,此時模板將忽略其內部的所有字符信息. 該特性用于顯示有可能包含大括號等字符信息的 javascript 腳本. 當這些信息處于 {literal}{/literal} 標簽中時,模板引擎將不分析它們,而直接顯示,其實按照我的所有例子中的標簽風格(因為在 init.inc.php 初始化文件中已經重新設置了左定界符和右定界符),而不是 Smarty 的默認風格,基本上不會產生這種情況。關于該函數的使用,請看下面的示例/tpl/index.tpl html head meta http-equiv="Content-Type" content="text/html; charset=utf-8" title literal /title /head body {literal} script language=javascript window.alert(new Date()); /script {/literal} /body /html 7、phpphp 標簽允許在模板中直接嵌入 php 腳本,此標簽會把標簽內部的內容當成 PHP 腳本進行解析執行。請看下面的示例/tpl/index.tpl html head meta http-equiv="Content-Type" content="text/html; charset=utf-8" title php /title /head body {php} echo date("Y-m-d H:i:s"); {/php} !-- 執行結果: 2011-10-24 04:35:03 -- /body /html 8、stripWeb 開發者多次遇到空格和回車影響HTML輸出的情形,為了得到特定的結果,因此你不得不在模板里運行所有的標簽. 通常在難以理解或難以處理的模板中遇到此問題。Smarty 在顯示前將除區任何位于 {strip}{/strip} 標記中數據的首尾空格和回車. 這樣可以保證模板容易理解且不用擔心多余的空格導致問題。好了, Smarty 模板引擎中的內建函數先總結這么多,關于內建函數中兩個最重要的函數(foreach,foreachelse、section,sectionelse)的使用,可參考前面一篇《PHP模板引擎Smarty內建函數foreach,foreachelse用法分析》更多關于PHP相關內容感興趣的讀者可查看本站專題:《smarty模板入門基礎教程》、《PHP模板技術總結》、《PHP基于pdo操作數據庫技巧總結》、《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》希望本文所述對大家基于smarty模板的PHP程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁陵县| 铜山县| 越西县| 陵川县| 云龙县| 沭阳县| 亳州市| 佳木斯市| 贡嘎县| 平果县| 镇平县| 东辽县| 句容市| 伊通| 博兴县| 繁峙县| 双流县| 平顺县| 安丘市| 乌恰县| 沭阳县| 芮城县| 杭锦后旗| 扬州市| 探索| 周口市| 新泰市| 青州市| 平凉市| 慈利县| 潮州市| 盘锦市| 都江堰市| 通州市| 榕江县| 深州市| 浮山县| 玉屏| 博白县| 祁门县| 锡林郭勒盟|