PHP代碼全部儲存到單獨的檔案中,這個檔案也就是由頁面URL實際調用的檔案。Web伺服器通過PHP引擎解析該檔案,然後把結果返回給瀏覽器。一般地,PHP代碼總是動態地產生頁面內容,比如查詢資料庫或者執行某種計算等。下面是一個例子:
<?php
// example.php
require('class.FastTemplate.php');
$tpl = new FastTemplate('.');
$tpl->define( array( 'main' => 'main.htm',
'header' => 'header.htm',
'leftnav' => 'leftnav.htm' ) );
// 此處的PHP代碼設定$content使其包含合適的頁面內容
$tpl->assign('CONTENT', $content);
$tpl->parse('HEADER', 'header');
$tpl->parse('LEFTNAV', 'leftnav');
$tpl->parse('MAIN', 'main');
$tpl->FastPrint('MAIN');
?>
這裡我們使用的是流行的FastTemplate模板類,但其基本思路對於其他許多模板類來說都一樣。首先你執行個體化一個類,告訴它到哪裡去尋找模板檔案以及哪一個模板檔案與頁面的哪部分對應;接下來是產生頁面內容,把結果賦予內容的標識符;然後,依次解析各個模板檔案,模板類將執行必要的替換操作;最後把解析結果輸出到瀏覽器。
這個檔案完全由PHP代碼構成,不包含任何HTML代碼,這是它最大的優點。現在,PHP程式員可以集中精力編寫產生頁面內容的代碼,而不必為了如何產生HTML去正確地格式化最終頁面而擔心。
你可以使用這種方法和上面的檔案構造出一個完整的網站。如果PHP代碼是以URL中的查詢字串為基礎產生頁面內容,例如http://www.foo.com/example.php?article=099,你可以據此構造出一個完整的雜誌網站。
很容易看出採用模板還有第二個好處。如上例所示,頁面左邊的導航條單獨儲存為一個檔案,我們只需編輯這一個模板檔案就可以改變網站所有頁面左邊的導航條。