權(quán)治 宋晶晶
(中國電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081)
基于PHP的動(dòng)態(tài)網(wǎng)站研究與實(shí)現(xiàn)
權(quán)治宋晶晶
(中國電子科技集團(tuán)公司第五十四研究所,河北石家莊050081)
針對(duì)動(dòng)態(tài)網(wǎng)站與靜態(tài)網(wǎng)站的區(qū)別,總結(jié)了各自的優(yōu)缺點(diǎn),闡述了各自的適用范圍。介紹了超文本預(yù)處理語言(Hypertext Preprocessor,PHP)的基本概念、在動(dòng)態(tài)網(wǎng)站中的運(yùn)行原理,并與活躍服務(wù)器頁(Active Server Pages,ASP)、爪哇服務(wù)器頁面(Java Server Pages,JSP)等語言進(jìn)行了比較。闡述了一些基本概念、功能模塊組成,提出PHP與MYSQL的最佳搭配方案,指出了系統(tǒng)運(yùn)行的軟硬件環(huán)境,通過動(dòng)態(tài)網(wǎng)站的實(shí)現(xiàn)過程驗(yàn)證了基于PHP的動(dòng)態(tài)網(wǎng)站系統(tǒng)的高效性和易操作性。
PHP動(dòng)態(tài)網(wǎng)站開源高效
網(wǎng)絡(luò)憑借其卓越的互動(dòng)性與便捷的交流手段已成為最有發(fā)展?jié)摿εc前途的新興媒體,各種網(wǎng)站的出現(xiàn),尤其是動(dòng)態(tài)網(wǎng)站的產(chǎn)生更是在潛移默化之中改變著人們的生活方式。動(dòng)態(tài)網(wǎng)站的功能之所以強(qiáng)大,關(guān)鍵在于它運(yùn)用的腳本程序。目前,主流腳本程序主要由3種語言實(shí)現(xiàn),分別是PHP、ASP和JSP。相對(duì)而言,PHP語言應(yīng)用更為廣泛,它能夠誕生并且發(fā)展到今天的規(guī)模,可以說是全世界免費(fèi)代碼開發(fā)者共同努力的結(jié)果。它是通過Internet把眾多程序員的編程精粹匯聚,再由PHP開發(fā)者將其轉(zhuǎn)化到程序設(shè)計(jì)語言中才誕生的??梢哉f,PHP是Internet的產(chǎn)物,是開放源代碼自由交流的勝利成果[1]。
2.1動(dòng)態(tài)網(wǎng)站
網(wǎng)站有動(dòng)態(tài)網(wǎng)站和靜態(tài)網(wǎng)站之分。動(dòng)態(tài)網(wǎng)站由動(dòng)態(tài)網(wǎng)頁構(gòu)成,靜態(tài)網(wǎng)站由靜態(tài)網(wǎng)頁構(gòu)成。
動(dòng)態(tài)網(wǎng)頁是指網(wǎng)頁文件里包含了程序代碼,通過后臺(tái)數(shù)據(jù)庫與Web服務(wù)器的信息交互,由后臺(tái)數(shù)據(jù)庫提供實(shí)時(shí)數(shù)據(jù)更新和數(shù)據(jù)查詢服務(wù)。動(dòng)態(tài)網(wǎng)頁能夠根據(jù)不同時(shí)間和不同的訪問者而顯示不同的內(nèi)容。如BBS、留言板和購物系統(tǒng)通常用動(dòng)態(tài)網(wǎng)頁實(shí)現(xiàn)。動(dòng)態(tài)網(wǎng)頁與網(wǎng)頁上的動(dòng)畫效果、滾動(dòng)字幕等視覺上的“動(dòng)態(tài)效果”沒有直接關(guān)系[2],這些只是網(wǎng)頁具體內(nèi)容的表現(xiàn)形式,一般采用動(dòng)態(tài)網(wǎng)站技術(shù)生成的網(wǎng)頁都稱為動(dòng)態(tài)網(wǎng)頁。動(dòng)態(tài)網(wǎng)頁的界定與網(wǎng)頁是否具有動(dòng)態(tài)效果無關(guān)。一般,PHP、ASP和JSP等語言做出來的網(wǎng)頁為動(dòng)態(tài)網(wǎng)頁。
靜態(tài)網(wǎng)頁采用純粹超文本標(biāo)記語言(Hypertext Markup Language,HTML)格式編寫,其內(nèi)容是固定不變的,所有用戶瀏覽WEB服務(wù)器,返回的HTML頁面相同。靜態(tài)網(wǎng)頁是相對(duì)于動(dòng)態(tài)網(wǎng)頁而言的,它是網(wǎng)站建設(shè)的基礎(chǔ),更新起來比較麻煩,適用于一般更新較少的展示型網(wǎng)站。
動(dòng)態(tài)網(wǎng)站與靜態(tài)網(wǎng)站各有千秋,概括如下:
(1)動(dòng)態(tài)網(wǎng)站的優(yōu)點(diǎn)
①能夠?qū)崿F(xiàn)更多的功能,如用戶注冊(cè)、用戶登錄、用戶管理等;
②內(nèi)容維護(hù)簡單方便,通常有網(wǎng)站后臺(tái),在網(wǎng)站后臺(tái)即可操作;
③以數(shù)據(jù)庫技術(shù)為基礎(chǔ),大大降低了網(wǎng)站維護(hù)的工作量。
(2)動(dòng)態(tài)網(wǎng)站的缺點(diǎn)
首先隨著訪問人數(shù)的增多,服務(wù)器負(fù)載就會(huì)不斷增大,最終會(huì)出現(xiàn)訪問速度特別慢,甚至崩潰的問題;再就是對(duì)搜索引擎的親和力不強(qiáng),因?yàn)閯?dòng)態(tài)網(wǎng)站的網(wǎng)頁,大多數(shù)都是動(dòng)態(tài)形成的,不利于搜索引擎的收錄。
(3)靜態(tài)網(wǎng)站的優(yōu)點(diǎn)
①獨(dú)立的文件,移植方便;
②制作方便,不需要復(fù)雜的編程功底;
③內(nèi)容相對(duì)穩(wěn)定,因此有利于搜索引擎抓取內(nèi)容、收錄。
(4)靜態(tài)網(wǎng)站的缺點(diǎn)
①后期維護(hù)工作量大,必須重新制作;
②對(duì)于內(nèi)容很多的靜態(tài)網(wǎng)站,需要大量HTML文件;
③交互性較差,在功能方面有較大的限制。
動(dòng)態(tài)網(wǎng)站通常用于信息變化快且需要用戶交互的企業(yè)類網(wǎng)站;靜態(tài)網(wǎng)站通常用于不經(jīng)常更新的企業(yè)類、學(xué)校類或個(gè)人網(wǎng)站,它制作簡單,有利于搜索引擎優(yōu)化。
2.2PHP開發(fā)語言
PHP是一種跨平臺(tái)的開放源代碼的服務(wù)器端嵌入式腳本語言。
2.2.1PHP特性
PHP的迅速發(fā)展,與其特有的一些優(yōu)點(diǎn)密不可分,主要表現(xiàn)在以下幾個(gè)方面:
①公開的源代碼;
②語言風(fēng)格與C語言類似,簡單易學(xué);
③內(nèi)嵌在HTML文檔中,與HTML網(wǎng)頁能夠較好的融合,服務(wù)器解釋腳本沒有多余的負(fù)擔(dān),執(zhí)行效率高;
④支持跨平臺(tái)運(yùn)行,支持多種WEB服務(wù)器和不同的操作系統(tǒng);
⑤提供豐富的數(shù)據(jù)庫接口,支持幾乎所有流行的數(shù)據(jù)庫;⑥程序在服務(wù)器端執(zhí)行,能夠充分利用服務(wù)器性能高、計(jì)算能力強(qiáng)的優(yōu)勢(shì),程序在服務(wù)器端執(zhí)行完畢后再將結(jié)果發(fā)送至瀏覽器,使得運(yùn)行速度快;
⑦PHP執(zhí)行引擎將用戶經(jīng)常訪問的PHP程序常駐內(nèi)存中,重復(fù)訪問時(shí)無需重新編譯,大大縮短運(yùn)行時(shí)間。
2.2.2PHP動(dòng)態(tài)網(wǎng)站運(yùn)行原理
用PHP開發(fā)的動(dòng)態(tài)網(wǎng)站與其他語言的動(dòng)態(tài)網(wǎng)站運(yùn)行原理基本相同[3],其流程如圖1所示。
圖1 PHP的運(yùn)行流程圖
2.2.3PHP與其他語言比較
PHP與ASP、JSP比較如表1所示。
表1 PHP與ASP、JSP的比較
由表1可以看出,在跨平臺(tái)、Web服務(wù)器支持程度、執(zhí)行效率、穩(wěn)定性、開發(fā)時(shí)間、網(wǎng)頁結(jié)合程度、學(xué)習(xí)門檻、函數(shù)支持、系統(tǒng)安全及升級(jí)速度上綜合起來看,PHP都明顯優(yōu)于ASP和JSP[4]。
3.1系統(tǒng)基本概念
網(wǎng)站前臺(tái)和網(wǎng)站后臺(tái)通常是相對(duì)動(dòng)態(tài)網(wǎng)站而言,也就是網(wǎng)站建設(shè)是基于數(shù)據(jù)庫開發(fā)的網(wǎng)站。
網(wǎng)站前臺(tái):前臺(tái)是面向網(wǎng)站訪問用戶的,通俗的說即是給訪問網(wǎng)站的人瀏覽或交互的內(nèi)容和頁面。網(wǎng)站前臺(tái)訪問可以瀏覽公開發(fā)布的內(nèi)容,如通知公告、科研動(dòng)態(tài)、常用聯(lián)系人、提交留言等操作。管理者可以通過事先注冊(cè)的用戶名和密碼登錄到后臺(tái)的網(wǎng)頁來發(fā)布通知公告、科研動(dòng)態(tài)、查看留言等操作。
網(wǎng)站后臺(tái):即網(wǎng)站管理后臺(tái),是指用于管理網(wǎng)站前臺(tái)的一系列操作,如通知公告、企業(yè)信息的增加、修改、刪除等。通過網(wǎng)站管理后臺(tái),可以有效的管理網(wǎng)站信息。
動(dòng)態(tài)網(wǎng)站系統(tǒng)將前臺(tái)和后臺(tái)完全分開進(jìn)行管理,最大化保證了網(wǎng)站的安全性。
層疊樣式表(Cascading Style Sheets,CSS),通常又稱為“風(fēng)格樣式表”,它是用來進(jìn)行網(wǎng)頁風(fēng)格設(shè)計(jì)的。它可以用于控制網(wǎng)頁中字體、顏色、圖像、表格、鏈接和布局格式等,它使網(wǎng)頁內(nèi)容和樣式定義徹底分開,可以將CSS保存為.css的文件,使用時(shí)再進(jìn)行調(diào)用導(dǎo)入,這樣就可以只需修改樣式文件便可達(dá)到頁面設(shè)計(jì)的效果。
用戶與用戶組:用戶是指管理或?yàn)g覽網(wǎng)站的客戶。用戶組是具有相同權(quán)限的用戶集合,即只要對(duì)這個(gè)用戶組賦予一定的權(quán)力,那么該組內(nèi)的用戶就具有相同的權(quán)力。
緩存:緩存(Cache)用于存儲(chǔ)臨時(shí)數(shù)據(jù),斷電后存儲(chǔ)的內(nèi)容會(huì)消失。有些網(wǎng)站由于前期設(shè)計(jì)以及其它原因網(wǎng)站是純動(dòng)態(tài)或者是大部分是動(dòng)態(tài)的,對(duì)數(shù)據(jù)庫的操作很頻繁,造成網(wǎng)站訪問速度很慢。利用緩存技術(shù),第一次訪問速度比較慢,因?yàn)闆]有緩存,第二次就是調(diào)用緩存文件,系統(tǒng)直接從緩存中獲取相關(guān)數(shù)據(jù),這樣速度遠(yuǎn)遠(yuǎn)大于再次進(jìn)行數(shù)據(jù)庫操作。
3.2系統(tǒng)功能模塊組成
一個(gè)基本的動(dòng)態(tài)網(wǎng)站主要包括相關(guān)功能模塊及后臺(tái)管理兩部分,相關(guān)功能模塊又包括7個(gè)主要功能模塊。如圖2所示。
圖2 動(dòng)態(tài)網(wǎng)站架構(gòu)
(1)用戶注冊(cè)登錄模塊
該模塊主要完成新用戶的注冊(cè)登錄。注冊(cè)登錄的目的是可以發(fā)布信息、查閱及統(tǒng)計(jì)信息。
(2)搜索功能模塊
該模塊用于在網(wǎng)站中搜索相關(guān)標(biāo)題信息,按照搜索的條件和規(guī)則顯示,搜索的結(jié)果就是標(biāo)題顯示頁面。
(3)標(biāo)題顯示功能模塊
該模塊就是將發(fā)布的信息簡要顯示在主頁頁面,顯示內(nèi)容為標(biāo)題+詳細(xì)頁面的鏈接地址。用戶點(diǎn)擊詳細(xì)頁面的鏈接地址,就能顯示出詳細(xì)信息頁面。
(4)詳細(xì)信息功能模塊
該模塊主要用于存儲(chǔ)顯示用戶發(fā)布的詳細(xì)的信息。
(5)友情鏈接功能模塊
該模塊為用戶自動(dòng)鏈接到指定文字鏈接地址。利用該模塊,管理員可以對(duì)常用的工具、網(wǎng)站等進(jìn)行鏈接,便于用戶更快、更準(zhǔn)確地找到相關(guān)信息。
(6)用戶管理功能模塊
該模塊主要進(jìn)行用戶的添加、刪除,密碼修改及用戶權(quán)限的控制。它實(shí)現(xiàn)了基于用戶組的訪問控制模型,不同用戶組被賦予相應(yīng)的權(quán)限,各用戶組內(nèi)人員只管理網(wǎng)站相應(yīng)版塊的工作。這種模式讓網(wǎng)站管理人員各盡其職,最大化提高工作效率。
(7)數(shù)據(jù)庫備份恢復(fù)功能模塊
該模塊主要進(jìn)行數(shù)據(jù)庫的備份、恢復(fù)工作。
3.3PHP+MYSQL組合
動(dòng)態(tài)網(wǎng)站開發(fā)離不開數(shù)據(jù)存儲(chǔ),數(shù)據(jù)存儲(chǔ)則離不開數(shù)據(jù)庫。目前市場(chǎng)上流行的大型數(shù)據(jù)庫有Oracle、SQL Server等,也有像諸如Access等的小型數(shù)據(jù)庫。對(duì)于網(wǎng)站開發(fā)而言,一般中小型數(shù)據(jù)庫系統(tǒng)就能滿足要求。MYSQL數(shù)據(jù)庫就是當(dāng)前PHP語言開發(fā)中使用最為廣泛的數(shù)據(jù)庫[5]。
MYSQL是一個(gè)廣受歡迎的中型關(guān)系數(shù)據(jù)管理系統(tǒng),它免費(fèi)、快速、跨平臺(tái)[6],并且支持多線程、多用戶、和重負(fù)載的性能要求。
PHP與MYSQL組合被稱為“最佳搭檔”,使用PHP+MYSQL進(jìn)行WEB應(yīng)用系統(tǒng)開發(fā)是一種非常理想的選擇。PHP+MYSQL可以在WINDOWS系統(tǒng)下運(yùn)行,也可以在Linux系統(tǒng)下運(yùn)行。
用PHP語言操作MYSQL數(shù)據(jù)庫的流程如圖3所示。
圖3 PHP操作MYSQL數(shù)據(jù)庫流程
當(dāng)然,PHP不僅僅只支持MYSQL數(shù)據(jù)庫一種。根據(jù)PHP官方提供的資料,PHP支持幾乎全部當(dāng)前主流的數(shù)據(jù)庫[7]。但是PHP和MYSQL的搭配不論從性能還是易用性上都毫無疑問的成為了開發(fā)者的首選。此外,PHP和MYSQL搭配的另一個(gè)主要原因是兩者均是免費(fèi)和開放源代碼的,并且都具有很好的跨平臺(tái)性。這使得搭建Web服務(wù)器的成本幾乎為零,而且開發(fā)出來的程序具有可移植性。
3.4系統(tǒng)運(yùn)行環(huán)境
基于PHP的動(dòng)態(tài)網(wǎng)站使用PHP語言開發(fā),需要運(yùn)行于支持PHP環(huán)境的阿帕奇(Apache Http Server,APACHE)[8]或互聯(lián)網(wǎng)信息服務(wù)(Internet Information Services,IIS)系統(tǒng)下。該軟件正常運(yùn)行的軟硬件環(huán)境要求如下:
①操作系統(tǒng):Windows或Linux或Unix;
②運(yùn)行環(huán)境:PHP4.0或以上版本;
③Web服務(wù)器:Apache2.0或IIS6.0或以上版本;
④硬件要求:CPU PIII500以上,內(nèi)存1G或更高(推薦2G以上)。
基于PHP的動(dòng)態(tài)網(wǎng)站已在某單位中進(jìn)行了應(yīng)用,該網(wǎng)站維護(hù)方便、執(zhí)行速度快、穩(wěn)定性好,取得了預(yù)期的效果。該網(wǎng)站采用PHP+MYSQL+APACHE組合,頂部采用flash圖片達(dá)到動(dòng)態(tài)效果。頭部導(dǎo)航欄包括網(wǎng)站首頁、工程簡介、軟件過程資產(chǎn)庫、標(biāo)準(zhǔn)化、檔案等版塊,點(diǎn)擊進(jìn)入各版塊后,分別顯示該版塊下的相關(guān)文檔、軟件等信息。用戶可根據(jù)需要自行瀏覽、下載需要的信息。接下來是通知公告和計(jì)劃管理。管理員定期將最新通知上傳至通知公告欄。計(jì)劃管理用于上傳課題計(jì)劃方面的信息,包括計(jì)劃完成率、課題初、正樣評(píng)審結(jié)論等計(jì)劃相關(guān)的信息。再是保密管理、質(zhì)量管理分別用于上傳保密、質(zhì)量相關(guān)的文檔、注意事項(xiàng)等。還有規(guī)章制度用于上傳各類規(guī)章制度,便于員工及時(shí)查閱,模范遵守;文檔模板是將各類文檔的書寫格式上傳,便于一線人員按規(guī)定的模板書寫各類文檔。最后是常用工具版塊,用于上傳常用的相關(guān)工具,如:列車時(shí)刻表、人員名單、獲取硬盤序列號(hào),便于用戶查閱。
該網(wǎng)站界面簡潔大方,運(yùn)行效率高,成本低(軟件均是開源的),網(wǎng)站后臺(tái)具有可操作的人機(jī)界面,便于維護(hù),幫助企業(yè)提高了效率、減少中間環(huán)節(jié)(省去相關(guān)責(zé)任人向各課題負(fù)責(zé)人挨個(gè)傳送)、規(guī)范管理、降低管理成本,取得了領(lǐng)導(dǎo)及用戶的一致好評(píng)。
基于PHP的動(dòng)態(tài)網(wǎng)站開發(fā)過程簡單,利于網(wǎng)站內(nèi)容的更新、維護(hù),可以實(shí)現(xiàn)交互功能,而且具有很好的安全性。它減少了中間環(huán)節(jié),使得辦公效率更高,更加規(guī)范化、科學(xué)化和信息化,提高了辦公管理水平,目前已取得了較好的效果。在技術(shù)發(fā)展上,PHP也具有獨(dú)特的優(yōu)勢(shì),由于它是開放語言,可以不斷吸收和采納所有使用者的建議和想法,從而不斷地推出新的功能以滿足用戶新的需求,這使得在互聯(lián)網(wǎng)個(gè)性化和交互式發(fā)展的形勢(shì)下,PHP具有無法超越的優(yōu)勢(shì)。
[1]聶慶鵬,毛書朋,王志樂.PHP+MySQL動(dòng)態(tài)網(wǎng)站開發(fā)與全程實(shí)例[M].北京:清華大學(xué)出版社,2007.
[2]韓雙旺.動(dòng)態(tài)網(wǎng)站與靜態(tài)網(wǎng)站的比較研究[J].自動(dòng)化與儀器儀表,2011(6):1-2,6.
[3]李敬秀.動(dòng)態(tài)網(wǎng)站的工作原理及運(yùn)行環(huán)境[J].電腦知識(shí)與技術(shù),2008,4(36):3034-3035.
[4]朱志輝,洪敏儀,沈紅輝.JSP與PHP的比較和應(yīng)用[J].廣州大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,6(1):31-35.
[5]黃亮.用PHP和MySQL開發(fā)電子商務(wù)網(wǎng)站[J].常熟高專學(xué)報(bào),2004,15(2):92-94.
[6]唐建國.MySQL數(shù)據(jù)庫系統(tǒng)安全分析[J].電腦知識(shí)與技術(shù),2010,6(23):6418-6420.
[7]聶慶鵬,毛書朋,王志樂.PHP+MySQL動(dòng)態(tài)網(wǎng)站開發(fā)與全程實(shí)例[M].北京:清華大學(xué)出版社,2007.
[8]趙鶴芹.設(shè)計(jì)動(dòng)態(tài)網(wǎng)站的最佳方案:Apache+PHP+MySQL [J].計(jì)算機(jī)工程與設(shè)計(jì),2007,1(4):5-8.
Research and Implementation of Dynamic Website Based on PHP
QUAN Zhi,SONG Jing-jing
(The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)
Aiming at the difference between the dynamic website and static website,their respective advantages and disadvantages are summarized,the respective applicable scope are expounded.The basic concept and the operation principle of PHP in dynamic website are introduced,and the languages such as PHP,ASP and JSP are compared.The basic concept and function modules are expounded,the optimal collocation scheme of PHP and MYSQL is put forward,and the hardware and software environment for system operation are pointed out.At last,the implementation procedure of website proves the high efficiency and simplicity of dynamic website based on PHP.
PHP;dynamic website;open source;high efficiency
TP393
A
1008-1739(2015)11-52-4
定稿日期:2015-05-12