廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 2381 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
as4bbc12
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[PHP][討論] 分離美工 杜絕重複
分離美工 杜絕重複

如果你正在設計一個互動式網站,你一定會關注兩個主要的問題,就是美工和程式。這也是一個網站在建設中拋開其內容之後最關鍵的要素。通常有兩種方式來協調美工和程式之間的關係:



  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的內容為:

  <html>

  .....

  <body>

  ...

  ...

  </body>

  </html>



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



  假設我們在test.php檔中使用了上述範本,當用戶流覽test.php文件時,test.php檔處理過程如下:



  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和相關系統的資源使用效率。



獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2006-08-10 16:36 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.051076 second(s),query:15 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言