最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

自定義min版smarty模板引擎MinSmarty.class.php文件及用法

 更新時(shí)間:2016年05月20日 13:04:52   作者:yanhui_wei  
這篇文章主要介紹了自定義min版smarty模板引擎MinSmarty.class.php文件及用法,可實(shí)現(xiàn)簡(jiǎn)單的Smarty模板變量替換與輸出顯示等功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了自定義的min版smarty模板引擎MinSmarty.class.php文件。分享給大家供大家參考,具體如下:

一、smarty的優(yōu)點(diǎn)

smarty是一個(gè)使用PHP寫(xiě)出來(lái)的模板引擎,是目前業(yè)界最著名的PHP模板引擎之一。它分離了邏輯代碼和外在的內(nèi)容,提供了一種易于管理和使用的方法,用來(lái)將原本與HTML代碼混雜在一起PHP代碼邏輯分離。簡(jiǎn)單的講,目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內(nèi)容不會(huì)影響到前端人員的頁(yè)面設(shè)計(jì),前端人員重新修改頁(yè)面不會(huì)影響到程序的程序邏輯,這在多人合作的項(xiàng)目中顯的尤為重要。

二、寫(xiě)一個(gè)簡(jiǎn)單的smarty模版類(lèi)

具體代碼如下:

<?php
 class MinSmarty{
 // 模版文件的路徑
 var $template_dir = "./templates/";
 // 模版文件被替換后的文件 命名格式為com_對(duì)應(yīng)的tpl.php
 var $complie_dir = "./templates_c/";
 // 存放變量值
 var $tpl_vars = array();
 // 這里使用兩個(gè)方法實(shí)現(xiàn)assign 和 display
 function assign($tpl_var,$var=NULL){
  if($tpl_var!=NULL){
  $this->tpl_vars[$tpl_var]=$var;
  }
 }
 // 這里編寫(xiě)display方法的實(shí)現(xiàn)
 function display($tpl_file){
  // 讀取這個(gè)模版文件->替換可以運(yùn)行的php文件(編譯后文件)
  $tpl_file_path=$this->template_dir.$tpl_file;  // 模版文件的路徑
  $complie_file_path=$this->complie_dir."com_".$tpl_file.".php";  //編譯后的文件路徑
  // 判斷文件是否存在
  if(!file_exists($tpl_file_path)){
  return false;
  }
  // 不讓每次執(zhí)行都生成編譯文件
  if(!file_exists($complie_file_path) || filemtime($tpl_file_path)>filemtime($complie_file_path)){
  $fp1_file_con=file_get_contents($tpl_file_path); // 獲取模版文件的全部?jī)?nèi)容
  // 這里進(jìn)行正則替換把  模版文件中的代碼 {$title} 替換成 <?php echo $this->tpl_vars['title'];? >
  $pattern=array(
     '/\{\s*\$([a-zA-Z_][a-zA-Z0-9_]*)\s*\}/i'
  );
  $replace=array(
     '<?php echo $this->tpl_vars["${1}"];?>'
  );
  $new_str=preg_replace($pattern,$replace,$fp1_file_con);  // 替換后的內(nèi)容
  file_put_contents($complie_file_path,$new_str);  // 替換后的內(nèi)容生成一個(gè)php文件
  }
  // 引入編譯后的文件
  include_once("$complie_file_path");
 }
 }
?>

下面的代碼是對(duì)該類(lèi)的測(cè)試

intro.php代碼如下:

<?php
  include_once("MySmarty.class.php");
  $title="這里是標(biāo)題";
  $content="這里是內(nèi)容111111";
  $MySmarty=new MySmarty();
  $MySmarty->assign("title",$title);
  $MySmarty->assign("content",$content);
  $MySmarty->display("intro.tpl");
?>

模版如下:

intro.tpl:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{$title}</title>
</head>
<body>
{$content}
</body>
</html>

PS:這里推薦幾款本站的格式化/美化/轉(zhuǎn)換工具可以幫助你整理雜亂無(wú)章的代碼,相信大家在以后的開(kāi)發(fā)中能夠用得上:

php代碼在線格式化美化工具:
http://tools.jb51.net/code/phpformat

JavaScript代碼美化/壓縮/格式化/加密工具:
http://tools.jb51.net/code/jscompress

在線XML格式化/壓縮工具:
http://tools.jb51.net/code/xmlformat

JSON代碼格式化美化工具:
http://tools.jb51.net/code/json

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat

sql代碼在線格式化美化工具:
http://tools.jb51.net/code/sqlcodeformat

更多關(guān)于Smarty相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《smarty模板入門(mén)基礎(chǔ)教程》、《PHP模板技術(shù)總結(jié)》、《PHP基于pdo操作數(shù)據(jù)庫(kù)技巧總結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語(yǔ)法入門(mén)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總

希望本文所述對(duì)大家基于smarty模板的PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • HTTP中header頭部信息詳解

    HTTP中header頭部信息詳解

    這篇文章主要介紹了HTTP中header頭部信息詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • PHP中的Memcache詳解

    PHP中的Memcache詳解

    這篇文章主要介紹了PHP中的Memcache,從Memcache簡(jiǎn)介開(kāi)始,詳細(xì)講解了如Memcache和memcached的區(qū)別、PHP的Memcache所有操作方法、每個(gè)操作方法的詳細(xì)解釋等,需要的朋友可以參考下
    2014-04-04
  • php實(shí)現(xiàn)QQ小程序發(fā)送模板消息功能

    php實(shí)現(xiàn)QQ小程序發(fā)送模板消息功能

    QQ小程序群里有伙伴要發(fā)送模板消息的代碼,所以今天給大家分享QQ小程序模板消息發(fā)布,絕對(duì)一步一步帶著大家走,每個(gè)細(xì)節(jié)都講到,感興趣的朋友跟隨小編一起看看吧
    2019-09-09
  • thinkphp循環(huán)結(jié)構(gòu)用法實(shí)例

    thinkphp循環(huán)結(jié)構(gòu)用法實(shí)例

    這篇文章主要介紹了thinkphp循環(huán)結(jié)構(gòu)用法,以實(shí)例形式講解了for、volist及foreach的用法,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • laravel5表單唯一驗(yàn)證的實(shí)例代碼

    laravel5表單唯一驗(yàn)證的實(shí)例代碼

    今天小編就為大家分享一篇laravel5表單唯一驗(yàn)證的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • php中單個(gè)數(shù)據(jù)庫(kù)字段多列顯示(單字段分頁(yè)、橫向輸出)

    php中單個(gè)數(shù)據(jù)庫(kù)字段多列顯示(單字段分頁(yè)、橫向輸出)

    這篇文章主要介紹了php中單個(gè)數(shù)據(jù)庫(kù)字段多列顯示、分行分列顯示技巧,也可稱(chēng)為單字段分頁(yè)、橫向輸出,需要的朋友可以參考下
    2014-07-07
  • 超小PHP小馬小結(jié)(方便查找后門(mén)的朋友)

    超小PHP小馬小結(jié)(方便查找后門(mén)的朋友)

    超小PHP小馬小結(jié),方便查找后門(mén)的朋友,發(fā)現(xiàn)相關(guān)類(lèi)似代碼可以直接封殺了
    2012-05-05
  • PHP驗(yàn)證碼函數(shù)代碼(簡(jiǎn)單實(shí)用)

    PHP驗(yàn)證碼函數(shù)代碼(簡(jiǎn)單實(shí)用)

    這篇文章主要分享了php中簡(jiǎn)單的驗(yàn)證碼函數(shù)實(shí)現(xiàn)代碼,代碼比較短,但效果卻不錯(cuò),喜歡的朋友可以試試
    2013-09-09
  • 一個(gè)基于phpQuery的php通用采集類(lèi)分享

    一個(gè)基于phpQuery的php通用采集類(lèi)分享

    這是自己以前寫(xiě)的一個(gè)php的采集類(lèi),自己一直在用,自我感覺(jué)很簡(jiǎn)單很強(qiáng)大,只要懂一點(diǎn)點(diǎn)選擇器的知識(shí)就可以采集任何頁(yè)面了,也支持https頁(yè)面,做簡(jiǎn)單的采集足夠用了
    2014-04-04
  • php 偽靜態(tài)之IIS篇

    php 偽靜態(tài)之IIS篇

    上篇文章我們講解了APACHE服務(wù)器下偽靜態(tài)的實(shí)現(xiàn),不過(guò)在國(guó)內(nèi)還是IIS的服務(wù)器要多些,特別是個(gè)人站長(zhǎng),那么,我們?cè)賮?lái)學(xué)習(xí)下IIS下php偽靜態(tài)的實(shí)現(xiàn)過(guò)程吧
    2014-06-06

最新評(píng)論

江山市| 松阳县| 玉林市| 湄潭县| 上栗县| 惠州市| 武乡县| 龙州县| 上思县| 同心县| 黔南| 平泉县| 静乐县| 宜昌市| 靖安县| 宜昌市| 邻水| 日照市| 溧水县| 遵化市| 永川市| 泗阳县| 都兰县| 遂平县| 景宁| 通山县| 太仆寺旗| 乌鲁木齐县| 杂多县| 邹城市| 精河县| 临西县| 泰和县| 高州市| 水富县| 乌拉特前旗| 甘德县| 泸定县| 蒙自县| 石屏县| 从江县|