建設一個簡單交互的網站(一)
PHP的許多特點與其他軟件或者工具有關。利用迄今為止我們所學到的PHP知識,我們可以試著建立一個簡單交互的網站。利用這一過程我們又可以學到不少東西。好吧,我們現在開始專注於一個典型個人網站的建設。
5.1 計劃一個站點
一般一個個人站點包括一個歡迎頁面、一個留言本頁面、一個書簽鏈接頁面、一個計數器、聯系信息,甚至還有照片集和一些音樂文件等等。
5.2 用include和require進行模塊化
我們看一些用PHP構架的網站,幾乎網站每一個頁面的PHP文件裡都會有include和require嵌入其間。這是因為使用include和require不但可增強代碼的可讀性,而且可將站點分成模塊來管理。一般來說,對於一個網站上的每個頁面肯定會有重復的內容。例如:頁面頭部的導航條、廣告圖標、或邊部導航等。可能還在每頁的頁腳即頁面的底部有著作權或一些基於文本的導航條。如果我們要修改一個包含成千上百個頁面的大網站上的導航條或是徽標之類的內容,用我們以往的方法,我們只能遂一對每一頁面進行更改。不用我說,大家也能想像到這是一件多麼艱巨而痛苦的差事。那麼,我們到底有沒有更好的解決方法呢?答案是肯定的。我們可以將重復的內容都放到一個文件中,然後在每一個需要這些內容的頁面上用PHP的include和require函數動態地調用該文件。這樣,以後如果我們想對所有頁面上的這些復用內容做修改時,就只需要更改包含了這些重復內容的文件。
為了便於大家理解,讓我們先來看看include和require的一個簡單應用:
HTML的頁面開始,也許你會在站點的每頁的頭部包含它(head.htm)。
<HTML>
<HEAD>
<TITLE> 我的個人主頁 </TITLE>
</HEAD>
<BODY>
頁面內容(content.htm)。
<H1>
歡迎來我的寒捨,雖然這裡現在暫時還沒有什麼。
</H1>
HTML的頁面的結束(trail.htm)
</BODY>
</HTML>
用include和require函數把HTML從PHP中分離出來,將HTML和PHP分成模塊:
<?
/*
調用HTML頁面的頭部
*/
require("head.htm");
/*
調用HTML頁面的內容
*/
require("centent.htm");
/*
調用HTML頁面的尾部
*/
require("trail.htm");
?>
5.3 讓我們從一個標題頁面、一個聯系信息頁面和一個簡歷頁面開始。我們同樣需要標准的、通用的頁面頭部和底部。
標題頁面--front.htm
這裡我們有一個非常簡單的html文件:
<HTML>
<HEAD>
<TITLE>
我的個人主頁--歡迎
</TITLE>
</HEAD>
<BODY>
<H1>
我的個人主頁
</H1>
<H2>
歡迎
</H2>
<HR>
<P>
歡迎來我的寒捨,雖然這裡現在暫時還沒有什麼。
</P>
<P>
不過我希望馬上就可以多起來。
</P>
<HR>
<P ALIGN="CENTER">
<SMALL> <I>
Copyright ? 我自己,1999
</I> </SMALL>
</P>
</BODY>
</HTML>
聯系信息頁面--count.htm
同樣我們又有了一個簡單頁面:
<HTML>
<HEAD>
<TITLE>
我的個人主頁--聯系信息
</TITLE>
</HEAD>
<BODY>
<H1>
我的個人主頁
</H1>
<H2>
聯系信息
</H2>
<HR>
<P>
你可以通過1-800-PHP-INFO聯系我
</P>
<HR>
<P ALIGN="CENTER">
<SMALL> <I>
Copyright ? 我自己,1999
</I> </SMALL>
</P>
</BODY>
</HTML>
5.4 從HTML到PHP
從上面你可以看出,每個頁面有相同的頭部和底部。像上面那樣每個頁面都寫入相同的信息在工作量少的時候還可以,但是想象一下當有100多頁面且你需要全部更改其頭部或底部時你要花費多大精力?一頁一頁的手工更改是一件多麼冗長無趣的事情啊!所以我們應該為這些頁面編寫PHP的頭部和底部文件,之後我們只要在每個HTML頁面中引用它們就行了。在include和require函數中都包含一個PHP代碼的文件,不管該文件的擴展名是什麼,它都被當作是PHP文件。我們將把這些include文件放在一個叫include的子目錄下,並取成以.inc為後綴的文件。下面我們就把這些站點的通用內容寫進文件中。
全站通用變量設定:common.inc
<?
// 全站通用變量
$MyEmail = "[email protected]";
$MyEmailLink = "<a href="mailto:$MyEmail">$MyEmail</a>";
$MyName = "PHP Talk";
$MySiteName = $MyName."'s Home Page";
?>
通用頁面頭部:header.inc
<?
// 定義通用頁面頭部
?>
<HTML>
<HEAD>
<TITLE>
<? echo "$MySiteName - $title"; ?>
</TITLE>
</HEAD>
<BODY>
<H1>
<? echo "$MySiteName"; ?>
</H1>
<H2>
<? echo "$title"; ?>
</H2>
<HR>
通用頁面底部:footer.inc
<?
// 通用頁面底部
?>
<HR>
<P ALIGN="CENTER">
<SMALL> <I>
Copyright ? by
<? echo "$MyName ($MyEmailLink)"; ?>
, 1999
</I> </SMALL>
</P>
</BODY>
</HTML>
新的頁面front.php3:
<?
include("include/common.inc");
$title = "Welcome";
include("include/header.inc");
?>
<P>
歡迎來我的寒捨,雖然這裡現在暫時還沒有什麼。
</P>
<P>
不過我希望馬上就可以多起來。
</P>
<?
include("include/footer.inc");
?>
新的count.php3:
<?
include("include/common.inc");
$title = "Contact Information";
include("include/header.inc");
?>
<P>
你可以通過1-800-PHP-INFO聯系我
</P>
<?
include("include/footer.inc");
?>
現在你可以體會一下這樣安排的好處了。如果你想改動頁面的頭部或者底部,你只需要改動相應的文件就可以了。如果你要修改你的e-mail地址甚至你的名字,只要修改common.inc文件就行了。另外值得注意的是你可以把具有任何文件名或者文件擴展名的文件包含進你的文件中,你甚至可以包含其他站點上的文件。