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,你可以據此構造出一個完整的雜志網站。
很容易看出采用模板還有第二個好處。如上例所示,頁面左邊的導航條單獨保存為一個文件,我們只需編輯這一個模板文件就可以改變網站所有頁面左邊的導航條。