用PHP制作靜態(tài)網(wǎng)站的模板框架(二)
發(fā)表時(shí)間:2024-01-21 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]PHP代碼全部保存到單獨(dú)的文件中,這個(gè)文件也就是由頁(yè)面URL實(shí)際調(diào)用的文件。Web服務(wù)器通過(guò)PHP引擎解析該文件,然后把結(jié)果返回給瀏覽器。一般地,PHP代碼總是動(dòng)態(tài)地生成頁(yè)面內(nèi)容,比如查詢數(shù)據(jù)庫(kù)或者執(zhí)行某種計(jì)算等。下面是一個(gè)例子: <?php // example.php require(&...
PHP代碼全部保存到單獨(dú)的文件中,這個(gè)文件也就是由頁(yè)面URL實(shí)際調(diào)用的文件。Web服務(wù)器通過(guò)PHP引擎解析該文件,然后把結(jié)果返回給瀏覽器。一般地,PHP代碼總是動(dòng)態(tài)地生成頁(yè)面內(nèi)容,比如查詢數(shù)據(jù)庫(kù)或者執(zhí)行某種計(jì)算等。下面是一個(gè)例子:
<?php
// example.php
require('class.FastTemplate.php');
$tpl = new FastTemplate('.');
$tpl->define( array( 'main' => 'main.htm',
'header' => 'header.htm',
'leftnav' => 'leftnav.htm' ) );
// 此處的PHP代碼設(shè)置$content使其包含合適的頁(yè)面內(nèi)容
$tpl->assign('CONTENT', $content);
$tpl->parse('HEADER', 'header');
$tpl->parse('LEFTNAV', 'leftnav');
$tpl->parse('MAIN', 'main');
$tpl->FastPrint('MAIN');
?>
這里我們使用的是流行的FastTemplate模板類,但其基本思路對(duì)于其他許多模板類來(lái)說(shuō)都一樣。首先你實(shí)例化一個(gè)類,告訴它到哪里去尋找模板文件以及哪一個(gè)模板文件與頁(yè)面的哪部分對(duì)應(yīng);接下來(lái)是生成頁(yè)面內(nèi)容,把結(jié)果賦予內(nèi)容的標(biāo)識(shí)符;然后,依次解析各個(gè)模板文件,模板類將執(zhí)行必要的替換操作;最后把解析結(jié)果輸出到瀏覽器。
這個(gè)文件完全由PHP代碼構(gòu)成,不包含任何HTML代碼,這是它最大的優(yōu)點(diǎn),F(xiàn)在,PHP程序員可以集中精力編寫生成頁(yè)面內(nèi)容的代碼,而不必為了如何生成HTML去正確地格式化最終頁(yè)面而擔(dān)心。
你可以使用這種方法和上面的文件構(gòu)造出一個(gè)完整的網(wǎng)站。如果PHP代碼是以URL中的查詢字符串為基礎(chǔ)生成頁(yè)面內(nèi)容,例如http://www.foo.com/example.php?article=099,你可以據(jù)此構(gòu)造出一個(gè)完整的雜志網(wǎng)站。
很容易看出采用模板還有第二個(gè)好處。如上例所示,頁(yè)面左邊的導(dǎo)航條單獨(dú)保存為一個(gè)文件,我們只需編輯這一個(gè)模板文件就可以改變網(wǎng)站所有頁(yè)面左邊的導(dǎo)航條。