?可以在幾秒鐘改變你的整個站點的外觀 ?抽象程序設計,沒有垃圾HTML代碼 ?設計人員不需要關心全部的"模糊"代碼 ?令人驚訝地快 ?更容易重用舊的模版(對普通 " /> 精品久久免费,av在线播放网站,国产精品卡一

四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

在PHP中使用模板的方法

好了,你可能想知道為什么你要使用FastTemplates。 

?可以在幾秒鐘改變你的整個站點的外觀 
?抽象程序設計,沒有垃圾HTML代碼 
?設計人員不需要關心全部的"模糊"代碼 
?令人驚訝地快 
?更容易重用舊的模版(對普通的表單而說)  

  FastTemplate源于一個有同樣名稱的Perl軟件包(可以在CPAN上找到)。你可以下載php 的版本從它的主頁(本站下載地址為:http://www.phpe.NET/downloads/1.shtml)。你只需要其中的一個類的文件(class.FastTemplate.php)。 



  讓我首先解釋一下在使用模板生成一個頁面與簡單地通過echo或print 將頁面輸出之間有什么不同吧。 
簡單地使用echo/print的方法很適合編寫短的腳本,但是不能幫助你更好的組織和定制。模板在另一方面給 
了你創建多國語言站點的能力,只是通過改動一個參數。他們可以促使你更關心你要做的。 



  在開始編碼之前不要害怕思考。它可能會花費一些時間,但是這些花費會隨著項目的發展對你有所回報。 



  那么,如何應用FastTemplate呢?首先你需要先進行一個簡單地調用: 

<?php $tpl=new FastTemplate ("path"); ?> 

傳遞給它一個路徑,是所有你的模板文件存放的目錄。它返回一個對象,你可以用它進行參 
數賦值,生成頁面等等。  

  FastTemplate是基于這樣一種假設:一個很大的頁面是由很多小的部分組成的。每一個部分有一個唯一 
的名字。最小的部分是賦值給這樣有著唯一名字的一段正常的文本字符串。這個可以通過 
<?php 
$tpl->assign(NAME, "text"); 
?> 
來完成。現在,如果你的一個模板包含{NAME},FastTemplate 就知道你 
的意圖了。 


  另外,FastTemplate需要知道你想如何調用你的模板。你需要通過傳遞一個相關數組(associative 
array)給 <?php $tpl->define(); ?> 
來給它一個提示。 
以下為引用的內容:
<?php 
$tpl->define(array(foo => "foo.tpl", 
bar => "bar.tpl")); 
?>  

  這些賦值將分別給foo和bar以不同的文件(名為foo.tpl和bar.tpl)。  

  現在你想讓FastTemplate替換在模板foo中的所有{MACROS}為相應的值。通過發出命令  

以下為引用的內容:
<?php 
$tpl->parse(PAGECONTENT, "foo"); 
?>  

來實現。 這個命令將把模板"foo"的內容賦給PAGECONTENT。   當然,我們還沒有做完,因為模板bar中為主要的頁面定義,FastTemplate需要替換其中的 
{PAGECONTENT}宏。我們也需要給PAGETITLE賦值,如下所做: 
以下為引用的內容:  
<?php 
$tpl->assign(PAGETITLE, "FooBar test"); 
$tpl->parse(MAIN, "bar"); 
?> 

  容易吧,不是嗎?我們現在只需要把它輸出: <?php 
$tpl->FastPrint(MAIN); 
?> 
  下面三個文件顯示了實際練習中的更多的細節描述。我不知道在現實生活了離了這個技術應如何生活 -- 
你的設計者會高興,你的老板會微笑,因為你可以在更短的時間內做更多的事情。 



以下為引用的內容:
bar.tpl 
<!-- bar.tpl --> 
<HTML> 
<HEAD><TITLE>Feature world - {PAGETITLE}</TITLE></HEAD> 
<BODY BGCOLOR=BLACK TEXT=WHITE> 
<H1>{PAGETITLE}</H1> 
{PAGECONTENT} 
</BODY> 
</HTML> 
foo.tpl <!-- foo.tpl --> 

很明顯示什么都沒做。請看{NAME}. 
以下為引用的內容: 



demo.php
<?php 
include "class.FastTemplate.php3"; 
$tpl = new FastTemplate( "."); 
$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl"));  

$tpl->assign(NAME, "me"); 
$tpl->assign(PAGETITLE, "Welcome!"); 




$tpl->parse(PAGECONTENT, "foo"); 
$tpl->parse(MAIN, "bar"); 



$tpl->FastPrint(MAIN); 
?>  

創建整個表格 
  我也寫了一個短的例子,用來演示如何通過單行模板來生成整個表格。它很有效,因為你仍然不需要直 
接修改HTML文檔。 



  我們增加一個模板的內容到一個已經定義過的唯一命名的后面來創建HTML表格。這個可以通過在調用 
$tpl->parse()時,在模板名前加上一個"."來實現。 <?php 
// 將模板foo的內容賦給TPL1 
$tpl->parse(TPL1, "foo");  

// 在TPL1后附上模板bar的內容 
$tpl->parse(TPL1, ".bar"); 
?>  

page.tpl 




以下為引用的內容:
<HTML> 
<HEAD><TITLE>Feature world - {PAGE_TITLE}</TITLE></HEAD> 
<BODY BGCOLOR=BLACK TEXT=WHITE> 
<H1>{PAGE_TITLE}</H1> 
{PAGE_CONTENT} 
</BODY> 
</HTML>  
table.tpl 



以下為引用的內容:
<TABLE> 
<TR> <TH>name</TH> <TH>size</TH> </TR> 
{TABLE_ROWS} 
</TABLE>  





table_row.tpl  

以下為引用的內容:
<TR> 
<TD>{FILENAME}</TD> 
<TD>{FILESIZE}</TD> 
</TR>  




yad.php



以下為引用的內容:
<?php 
include "class.FastTemplate.php3"; 
function InitializeTemplates() { 
global $tpl;  

$tpl = new FastTemplate( "."); 
$tpl->define( array( page => "page.tpl", 
table => "table.tpl", 
table_row => "table_row.tpl" ) ); 
}  

function ReadCurrentDirectory() { 
global $tpl;  

$handle = opendir( "."); 
while($filename = readdir($handle)) { 
$tpl->assign(FILENAME, $filename); 
$tpl->assign(FILESIZE, filesize($filename)); 
$tpl->parse(TABLE_ROWS, ".table_row"); 

closedir($handle); 
$tpl->parse(PAGE_CONTENT, "table"); 




function PrintPage($title) { 
global $tpl;  

$tpl->assign(PAGE_TITLE, $title); 
$tpl->parse(FINAL, "page"); 
$tpl->FastPrint(FINAL); 
}  

InitializeTemplates(); 
ReadCurrentDirectory(); 
Printpage( "Yet Another Demo"); 
?>  

速度討論 




  "Ok," 你可能會說,"一切都太好了。但是它不會影響我的網站的速度嗎?" www~ 

  不,你的網站可能變得更快。一個簡單的原因就是:因為你作為一個編程人員關心的是設計你的應用和編寫代碼,你的代碼將會更有效率,處理相同的任務更容易和更快速。所以,你可能會在上面列出的為什么考慮使用FastTemplate在你的項目中的原因列表中增加另一條理由。  

  如果你只是想轉換一個已經存在的web站點,性能上的成功可能不會被注意到。我建議在php中使用正則表達式緩沖,它將對這種情況有所幫助。因為FastTemplate對每一個宏都使用正則表達式,每一個正則表達式將被只編譯一次并且速度上的影響可以忽略不計。

php技術在PHP中使用模板的方法,轉載需保留來源!

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

主站蜘蛛池模板: 火花 电影| 凤凰卫视资讯台直播| 南来北往电视剧剧情介绍| 山西少儿频道| 罗中立的《父亲》详案| 上锁的房间演员表| 过昭关| 负心人| 寒战3| 无耻之徒英文| 亚洲免费观看视频| 四年级下册语文第15课课堂笔记| 李路琦| 托比·斯蒂芬斯| 豆包简历个人资料| 小小少年电影完整版| 田中敦子| 爱秀直播| 被主人调教| 酱园弄 电影| 邓家佳电影| 布衣神相国语电视剧在线看完整版| 王雪华| 张学明| 温柔地杀死我| 2024年月历| 樊城电影| 林莉娴| 回响电视剧在线观看| 爱情重伤| 澳门风云3演员表| 少年派2全集免费播放| 暴雪将至电影| 小舞泳装比基尼套装图片| 汪汪队之小砾与工程家族| 松树的风格原文完整版| 小丑2双重疯狂免费播放在线观看| 花宵道中1| 舌吻床戏视频| 市川实日子| 即便是爸爸也想恋爱|