查看: 1587|回復: 0
打印 上一主題 下一主題

PHP 的模版技術介紹

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-9-6 14:31:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如果你正在設計一個交互式網站,你一定會關注兩個主要的問題,就是美工和程序。這也是一個網站在建設中拋開其內容之後最關鍵的要素。通常有兩種方式來協調美工和程序之間的關係:

  1.先做好美工頁面,然後由程序員直接在美工頁面的HTML檔案中嵌入ASP、JSP、PHP等程序代碼。

  2.美工和程序同時進行,但這時因為沒有頁面框架,程序只能做出一些關鍵代碼,雙方完成後再進行一次美工頁面和程序代碼的嵌入合成。

  在實際的網站建設過程中,由於人員、進度等環境的限制,大家通常會混合地使用上面兩種協調方式。然而這兩種方法都有不足之處:

  1. 效率不高。兩者協調不好可能產生等待、重複代碼調試步驟等現象;

  2. 調試不暢。由於程序代碼最終需要嵌入在HTML頁面中,代碼的嵌入、調試、糾錯都比較繁瑣;

  3. 維護不便。一旦美工設計需要修改,如網站改版,那麼所有程序和HTML代碼混合頁面都需要重寫;

如果你正在使用PHP程序建設網站,那麼恭喜你,PHP的模板技術會比較圓滿地解決上述問題。

  那麼什麼是PHP的模板技術?PHP模板即PHPlib的Template技術,是PHPLIB程序庫中的一個主要模塊之一,發展自Perl的Template。而PHPLIB則是在PHP上的一個擴展,提供了很多類庫,能夠方便地實現一些基本功能如用戶認證,資料庫封裝等。我們可以在phplib.netuse.de上下載到其最新版本。要使用PHP模板,只需在PHPLIB的程序包中解開template.inc檔案,並放到我們的PHP程序能夠調用的目錄裡。

  剝開神秘的面紗,模板技術的核心概念簡單得令人心跳:要將你的美工頁面指定為模板檔案,只需將頁面中活動的內容如資料庫輸出,用戶交互等部分定義成形式為{variable}的變量放在模板檔案中相應的位置,當用戶瀏覽時,由PHP程序檔案打開該模板檔案,將模板檔案中定義的變量進行替換,當然,替換成對應的資料庫輸出或者用戶交互等動態生成內容,舉例如下:

定義模板檔案:Mytemplate.html
Mytemplte.html的內容為:

QUOTE:
  <html>
  .....
  <body>
  ...
  ...
  </body>
  </html>

我們可以看到,事實上模板檔案就是一個普通的HTML檔案,它包含了你所想要的版面、美工等要素,而內部的活動內容則以變量的形式存在,並等待被替換。顯然,模板檔案直接被瀏覽是毫無意義的,因為它不包含任何PHP程序,所有的內容都是「死」的,現在我們來看看,怎樣來調用模板,讓它「活動」起來。

假設我們在test.php檔案中使用了上述模板,當用戶瀏覽test.php檔案時,test.php檔案處理過程如下:


QUOTE:
  test.php
  <?php
  $mydate=date("Y年m月d日"); //處理好變量的值
  include("template.inc"); //調入將模板程序模塊
  $mytemp = new Template("/你的模板檔案所在目錄/");
  //創建一個模板實例mytemp,如果模板就在當前目錄,那麼使用"."就可以
  $mytemp->set_file("MyFileHandle","MyTemplate.html");
  //設置MyFileHandle檔案句柄指向我們所要調用的模板檔案Mytemplate.html
  $mytemp->set_var("today"、mydate);
  //調用模板的set_var方法,設置模板中的變量today值為$mydate
  $mytemp->parse("MyOutput","MyFileHandle");
  //調用模板的parse方法,對MyFileHandle檔案句柄所指向的模板檔案進行分析,替換其中相應變

量
  //並把替換結果即完整的HTML檔案內容保存在字串變量MyOutput中
  $mytemp->p("MyOutput");
  // 列印輸出結果字串變量MyOutput的值
  ?>

  就是這麼簡單,模板技術很輕鬆地把網站設計分離成了清晰的美工和程序兩個方面,並把他們的成果簡單方便地結合了起來。如美工設計需要修改,那麼我們只要記住原模板中各個變量名,把他們插入到新模板中對應位置就可以了。真的很輕鬆!另一方面,在PHP程序中基本沒有了PHP腳本和HTML語法混合的現象,很大地提高了PHP系統的執行效率,而且如果是資料庫等一些費時的操作,現在可以很及時地關閉資料庫,釋放資源,這樣也在一定程度上提高了PHP和相關係統的資源使用效率。

  好了,關於PHP模板技術的基本概念就介紹到這裡,下次我們再介紹更高層的模板應用!

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

本論壇為非營利之網路平台,所有文章內容均為網友自行發表,不代表論壇立場!若涉及侵權、違法等情事,請告知版主處理。


Page Rank Check

廣告刊登  |   交換連結  |   贊助我們  |   服務條款  |   免責聲明  |   客服中心  |   中央分站

手機版|中央論壇

GMT+8, 2026-11-8 16:12 , Processed in 0.036501 second(s), 15 queries .

Powered by Discuz!

© 2005-2015 Copyrights. Set by YIDAS

快速回復 返回頂部 返回列表