phplib template簡明教程

 轉帖一個phplib template教程。

phplib template簡明教程(五)

第五章 模板嵌套

在寫PHP頁面的時候,我們會發現像頁面頭部分和尾部分,有好多頁都要用,每頁寫一遍就太麻煩了,這些”公用代碼”我們可以把它單獨寫在一個文件裏,如果這個公用部分要有所改動,無需再去改每一個頁面,能減少非常多的工作量。用Template模板可以很方便的把一個頁面隨意插入另一個模板的任意地方。
新建3個文件third.htm、header.htm、footer.htm,內容分爲如下
third.htm
<!– 這是頁面頭部 –>
{header}
<BODY>
下面是一個列表
<UL>
<!– BEGIN list –>
<li>{name} 的身高是 {tall}
<!– END list –>
</UL>
<!– 這是頁腳部分 –>
{footer}
</BODY>
</HTML>

header.htm
<HTML>
<HEAD>
<TITLE> {title} </TITLE>
</HEAD>

footer.htm
<P>author © fuyatao

下面我們開始我們的PHP程序:

<?php
include (’template.inc’);
$tpl = new Template;
$tpl->set_file(’main’, ‘third.htm’);
$tpl->set_file(’my_header’, ‘header.htm’);
$tpl->set_file(’my_footer’, ‘footer.htm’);
$tpl->set_var(’title’, ‘這個是網頁標題’);
$tpl->set_block(’main’, ‘list’, ‘nlist’);
$link=mysql_connect(’localhost’,'fuyatao’,'passwd’);
$result=mysql_db_query(’fyt’,’select name,tall from my_table’);
while ( $a = mysql_fetch_array($result))
{
$tpl->set_var(’name’ , $a[name]);
$tpl->set_var(’tall’ , $a[tall]);
$tpl->parse(’nlist’, ‘list’, true);
}
$tpl->parse(’header’, ‘my_header’);
$tpl->parse(footer, my_footer);
$tpl->parse(’mains’, ‘main’);
$tpl->p(’mains’);
?>

最後看看結果,一切正如我們期待的那樣呈現出來。

1 comment 四月 23rd, 2006

phplib template簡明教程(四)

第四章 block的應用

在上一章中,我們使用模板把html和php代碼分開。其中second.htm模板中關於列表部分是這樣寫的:

<UL>
<li>{name1} 的身高是 {tall1}
<li>{name2} 的身高是 {tall2}
<li>{name3} 的身高是 {tall3}
<li>{name4} 的身高是 {tall4}
</UL>

是不是有點煩瑣?本來沒用模板之前,我們用了一句

while ($a = mysql_fetch_array($result)){
echo “<li>$a[name]的身高是$a[tall]”;
} 就搞定了,用了模板,反而要寫4次,如果是100人的列表,豈不是我們要寫100次?天啊!夠嚇人的。好在phplib templete爲我們提供了block,將其真譯爲“塊”。通過定義塊,也可以用一行輕鬆搞定。

<UL>
<!– BEGIN list –>
<li>{name} 的身高 {tall}
<!– END list –>
</UL>

需要注意的是,BEGIN list與前後的中劃線–之間必須有空格,前後中劃都是兩個,此處可能由於顯示太小,兩個中劃線連到一塊兒了。

在 second.php中需要加載塊。

<?php
include (’template.inc’);
$tpl = new Template;
$tpl->set_file(’main’, ’second.htm’);
$tpl->set_block(’main’, ‘list’, ‘nlist’); //加載模板main中的塊list,並給其一個名字nlist
$link=mysql_connect(’localhost’,'fuyatao’,'passwd’);
$result=mysql_db_query(’fyt’,’select name,tall from my_table’);
while ( $a = mysql_fetch_array($result))
{
$tpl->set_var(’name’ , $a[name]);
$tpl->set_var(’tall’ , $a[tall]);
$tpl->parse(’nlist’, ‘list’, true);
}
$tpl->parse(’mains’, ‘main’);
$tpl->p(’mains’);
?>

Add comment 四月 23rd, 2006

phplib template簡明教程(三)

第三章 稍複雜點的應用

現在我們設想稍微複雜一點的情況,新建一個second.htm模板文件,內容爲:
<HTML>
<HEAD>
<TITLE>第二個模板文件</TITLE>
</HEAD> <BODY>
下面是一個列表
<UL>
<li>谷軍濤 的身高是 170cm
<li>武劍 的身高是 171cm
<li>青竹 的身高是 180cm
<li>王聰聰 的身高是 172cm
</UL>
</BODY>
</HTML>
以上頁面是純靜態的,假設要使用數據庫,用PHP代碼嵌入HTML的話,是這樣寫的:
<HTML>
<HEAD>
<TITLE>第二個模板文件</TITLE>
</HEAD> <BODY>
下面是一個列表
<?php
$link=mysql_connect(’localhost’,'fuyatao’,’ passwd’);
$result=mysql_db_query(’gfs’,’select name,tall from my_table’);
echo “<UL>”;
while ($a = mysql_fetch_array($result)){
echo “<li>$a[name]的身高是$a[tall]”;
}
?>
</UL>
</BODY>
</HTML>

PHP新手一般都這樣寫,但你很快發現:你或者美工改這個列表樣式的時候需要多麼的小心翼翼,特別是美工,如果他不懂PHP代碼,那麼他會終日在恐懼之中!因爲稍微的不小心,可能就會帶來程序的運行錯誤。對於頁面的維護來說,非常不方便。即便是你自己寫的代碼,過一段時間你也可能有所遺忘,修改起來一樣要備加小心。

現在有了模板,你可以把PHP代碼抽取出來。 我們可以這樣修改second.htm文件。

<HTML>
<HEAD>
<TITLE>第二個模板文件</TITLE>
</HEAD> <BODY>
下面是一個列表
<UL>
<li>{ name1} 的身高是 {tall1}
<li>{name2} 的身高是 {tall2}
<li>{name3} 的身高是 {tall3}
<li>{name4} 的身高是 {tall4}
</UL>
</BODY>
</HTML>

建立second.php:

<?php
include (’template.inc’);
$tpl = new Template;
$tpl->set_file(’main’, ’second.htm’);
$link=mysql_connect(’localhost’,'fuyatao’,'passwd’);
$result=mysql_db_query(’fyt’,’select name,tall from my_table’);
$i=0;
while ( $a = mysql_fetch_array($result))
{
$i++;
$tpl->set_var(’name’ . $i, $a[name]);
$tpl->set_var(’tall’ . $i, $a[tall]);
}
$tpl->parse(’mains’, ‘main’);
$tpl->p(’mains’, ‘main’);
?>

在瀏覽器裏執行 second.php 一樣會得到正確的結果。這樣以後不管是你還是美工修改頁面的時候,再也不用膽顫心驚、擔心會把程序弄壞了。

Add comment 四月 23rd, 2006

phplib template簡明教程(二)

第二章 第一個簡單的模板頁
我理解,所謂”模板”,就是將界面和實現代碼分離開來,這樣做的目的一是將美工和程序員的工作分離開來,提高工作效率,二是方便維護。下面我們就開始嘗試寫一個簡單的模板了,文件名first.htm。

< HTML>
< HEAD>
< TITLE> 我的第一個模板文件 < /TITLE>
< /HEAD>
< BODY>
你知道嗎? {man}真是一個好人。
< font color=”#0000FF”> 作者:{author}</font>
< /BODY>
< /HTML>

first.html模板中的{man}{author}{date}可以稱爲”模板變量”,用花括號({})括起來。

上面我們定義三個變量的原因是我們想隨時改變它們的值,下面我們就來做這個工作。新建first.php文件,內容如下:

<?php
include (’template.inc’); //包含進模板類 template.inc
$tpl = new Template; //創建一個新模板
$tpl->set_file(’main’, ‘first.html’); //把模板文件加載進來
$tpl->set_var(’man’, ‘fuyatao’); // //給文件中的模板變量賦值
$tpl->set_var(’author’, ‘fuyatao’);
$tpl->parse(’mains’, ‘main’); // //完成替換
$tpl->p(’mains’); // //輸出替換的結果
?>

你也可以一次完成給變量賦值,這樣
$tpl->set_var(
array(’man’=>’fuyatao’, ‘author’=>’fuyatao’)
);

瀏覽器中瀏覽這個文件,你就會發現輸出:你知道嗎?fuyatao真是一個好人。作者:fuyatao.

初次嘗試還算順利吧?如果沒有如你所願地看到上述文字,那一定是你哪裏弄錯了。瀏覽器會有提示。還有如果你將這些代碼複製到本機不能正確執行,有可能是標點符號的問題,必須用英文的標點符號,程序中用中文的引號或分號都會引起程序不能正常運行,本人就曾經吃過這個虧,反覆檢查程序沒有錯,可就是執行不了,後來才發現是一個地方用錯了標點。

Add comment 四月 23rd, 2006

phplib template簡明教程(一)

第一章 如何進行安裝配置

PHP世界中比較流行的模板處理工具有PHPLIB Template和FastTemplate兩種。據筆者看有關資料介紹,PHPLIB Template的技術易用性和速度較爲理想,所以俺就學習使用了PHPLIB Template。

phplib template 的安裝其實非常簡單。現在說簡單,呵呵,其實剛開始上手的時候竟然花了好幾天的功夫才知道大概是怎麼一回事兒。那我們首先來認識一下phplib吧。

隨着php的應用和推廣,衆多開發人員和很多愛好者在php的基礎上開發了很多php的程序庫,這些程序庫大大簡化了程序設計和提高了代碼的可重用性。其中phplib就是這些庫中相當優秀的產品。phplib有五大功能:將數據庫驅動和對數據庫操作完全分離;支持session;權限許可;模板;購物車。我們要用的模板功能只是phplib這個庫的諸多功能中的一種。筆者剛開始看phplib 的網方官站 ,就看得一頭霧水,怎麼還有數據庫、session等等,最後才明白原來俺需要的只是template。

要說安裝,其實就是下載phplib庫文件。你可以到phplib的官方網站下載最新的版本:http://phplib.sourceforge.net 這是一個 tar.gz 壓縮包,下載完之後就是解壓了。打開解壓後的文件夾,裏邊有一個php文件夾,將該php文件夾複製到任何你想要的其它位置,但不要放在網頁 服務器的目錄下。比如:我的網頁服務器根目錄是:/var/www,我可以將php文件夾放在/ var下,與www文件夾平行。然後打開php的配置文件php.ini進行編輯。更改include_path,使其指向剛剛複製的php文件夾的位置。比如:include_path = “.:/var/www/php”。phplib的官方站quick guide to installation講了十個步驟,我們只用phplib template這一項功能的話,其它的安裝步驟其實根本不用理會。保存退出,重啓 apache2服務。然後就可以嘗試編寫你的第一個模板頁了。

 

 

發佈了33 篇原創文章 · 獲贊 2 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章