第15講 網(wǎng)站計數(shù)器_第1頁
第15講 網(wǎng)站計數(shù)器_第2頁
第15講 網(wǎng)站計數(shù)器_第3頁
第15講 網(wǎng)站計數(shù)器_第4頁
第15講 網(wǎng)站計數(shù)器_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第8章網(wǎng)站計數(shù)器8.1訪問者計數(shù)器的工作流程1任務(wù)1:訪問者計數(shù)器的運作過程在首頁中加入計數(shù)器,有利于演示如何讀寫文件以及創(chuàng)建自己的函數(shù)。在動手設(shè)計訪問者計數(shù)器前,先來了解一下訪問者計數(shù)器是如何運行的。如圖8-1所示。當(dāng)服務(wù)器收到用戶端傳送來的請求時,訪問者計數(shù)器模塊便將次數(shù)一次一次累加下來,這樣我們就可以知道網(wǎng)站被要求送出幾次內(nèi)容。當(dāng)然也就可以借此來計算出網(wǎng)站究竟已經(jīng)被瀏覽過幾次了。2任務(wù)1:訪問者計數(shù)器的運作過程3任務(wù)2:訪問者計數(shù)器的工作步驟及實現(xiàn)思想詳細(xì)的步驟描述如下:1.客戶訪問相應(yīng)的頁面,向服務(wù)器發(fā)送“連接請求”;2.服務(wù)器收到請求后,開始“查找定制文件”;3.“計數(shù)器處理組件”代碼通過PHP解釋器執(zhí)行,將保存在“記錄次數(shù)組件”中的次數(shù)讀取出來,并做加1處理,寫回到“記錄次數(shù)組件”中;4.相關(guān)php代碼把當(dāng)前的次數(shù)通過PHP解釋器4任務(wù)2:訪問者計數(shù)器的工作步驟及實現(xiàn)思想“傳遞執(zhí)行結(jié)果”,嵌入到網(wǎng)頁的HTML代碼中,由服務(wù)器傳送到客戶端瀏覽器。實現(xiàn)的思想是在服務(wù)器端,使用一個文件(例如counter.txt)來保存當(dāng)前的計數(shù),然后服務(wù)器被訪問一次,就從這個文件中把這個計數(shù)提取出來,進行加1處理,再把結(jié)果放回到該文件當(dāng)中。當(dāng)需要的時候就把該數(shù)字調(diào)出來,按照要求發(fā)送到客戶端瀏覽器。因此,記錄次數(shù)組件就是counter.txt文本文件。58.2模塊結(jié)構(gòu)圖與流程圖6任務(wù)3:畫出模塊結(jié)構(gòu)圖對于任何一個實際的工作情境,我們都可以通過其應(yīng)有的實際效果,分析該模塊的工作流程,同時,得到相應(yīng)的模塊結(jié)構(gòu)圖。我們可以依據(jù)上述的流程進一步把此功能分為幾個子組件,分別為HTML組件、計數(shù)器處理組件和記錄次數(shù)的組件。如圖8-2所示。在網(wǎng)上選課系統(tǒng)中,次數(shù)的記錄將不適用數(shù)據(jù)庫,而是被記錄在counter.txt文件中。7任務(wù)3:畫出模塊結(jié)構(gòu)圖8任務(wù)4:計數(shù)器處理組件的流程圖

從圖8-3清晰地看出服務(wù)器端如何利用計數(shù)器處理組件進行次數(shù)累加的。服務(wù)器被訪問一次,就從這個文件中把這個計數(shù)提取出來,賦值給$counter,然后對$counter進行加1處理,再把結(jié)果賦值給變量$counter。$counter的值除了寫回到counter.txt文件之外,還一直保存在內(nèi)存里,可以在HTML組件里面通過PHP語句進行調(diào)用,把次數(shù)顯示給客戶端。9任務(wù)4:計數(shù)器處理組件的流程圖

108.3代碼組裝與分析11任務(wù)5:編寫計數(shù)器組件的代碼12第2行用于建立一個與counter.txt文件的鏈接,并將其設(shè)為可讀寫的狀態(tài)(覆蓋模式,就是在數(shù)據(jù)寫入的時候會將文件內(nèi)容完全覆蓋);第3行是從文件指針目前所指位置取80個字節(jié)的數(shù)據(jù)。若訪問者非常多,則可以將此數(shù)值加大;第4行是將變量$counter的值加1;第5行將指針指回到文件起始處;第6行的fputs()函數(shù)用于將$counter的數(shù)值寫回到counter.txt文件中;程序代碼主要功能介紹13第7行是使用fclose()函數(shù)將與文件的連接關(guān)閉。PHP語句是類C或類Java,一般來說,一條語句是一行,每一條語句是一個具體的操作,例如賦值,以分號“;”結(jié)束。PHP的運算符也和C或者Java一樣。需要注意的是在PHP中,變量是以“$”開頭的,不需要刻意地提前定義變量。需要用的時候,直接命名使用即可。例如:在計數(shù)器處理組件中,為了訪問counter.txt文件,使用了PHP的函數(shù)fopen()并將函數(shù)fopen()返回值賦值給變量$fp。$fp=fopen("counter.txt","r+");14任務(wù)6:PHP函數(shù)操作15任務(wù)7:計數(shù)器代碼的組裝與測試

編輯完counter.php之后,我們可以在一個臨時的HTML組件中temp.php查看一下計數(shù)器處理組件運行的效果。并通過這個例子,看看如何讓選課系統(tǒng)的首頁index.php也能正確顯示訪問者的次數(shù)。這是一個典型的“.php”的文件,其中包含了PHP的語句,也包含了HTML語句,其實就是PHP語句嵌入到了HTML語句中。在這種方式下,PHP語句要用“<?php”和“?>”進行標(biāo)記。16任務(wù)7:計數(shù)器代碼的組裝與測試17任務(wù)7:計數(shù)器代碼的組裝與測試第2行就是在HTML組件中調(diào)用了計數(shù)器處理組件,使用的是include()函數(shù)。上面代碼中還使用了“echo”語句,其功能是把跟著它的表達式的值打印輸出。上述的例子就是將$counter的值打印輸出在HTML的要顯示第幾個訪問者的語句中。我們前面講過,計數(shù)器處理組件是在服務(wù)器被訪問時,把counter.txt文件內(nèi)的值加1再保存回去,同時在內(nèi)存中存放著當(dāng)前的$counter的值。在下面的代碼中,第49行就使用echo命令把$counter的值輸出到HTML組件中,最終被看做HTML文檔傳送給客戶端。在瀏覽器中瀏覽,顯示效果如圖8-4所示。18任務(wù)7:計數(shù)器代碼的組裝與測試198.4圖形計數(shù)器20任務(wù)8:圖形計數(shù)器的實現(xiàn)我們承接上面的文字版計數(shù)器的做法,數(shù)值一樣在counter.txt文件中存取,但是如何讓文件中存放的次數(shù)值可以用圖形來顯示呢?要有0~9這10個數(shù)字圖形的GIF文件,接著我們要解決的就是將數(shù)字轉(zhuǎn)換成圖片。最簡單的方法就是把保存在counter.txt文件中的次數(shù)值拆成一個個的數(shù)字,例如,將741111拆成7、4、1、1、1、1這6個數(shù)字,再分別將這些數(shù)字對應(yīng)到圖片7.gif、4.gif、1.gif、1.gif、1.gif、1.gif六個文件。這樣顯示在網(wǎng)頁上的就會使741111的GIF圖形版了。圖形版的計數(shù)器模塊結(jié)構(gòu)圖如圖8-5所示:21任務(wù)8:圖形計數(shù)器的實現(xiàn)下面給出counter.php的代碼。請讀者根據(jù)所給出的index.php進行調(diào)試,并應(yīng)用到動態(tài)網(wǎng)站或系統(tǒng)的首頁,使其變成圖形版的訪問次數(shù)計數(shù)。counter.php的代碼如下:22任務(wù)8:圖形計數(shù)器的實現(xiàn)第8行的strlen()函數(shù)用來判斷一個字符串的長度,用來判斷變量$counter是幾位數(shù);第9行為轉(zhuǎn)換循環(huán)的開始,$n為數(shù)值的位數(shù),如741111為6位數(shù),則循環(huán)6次;第10行的substr()函數(shù)為截取字符串的函數(shù);第11行是以圖形替換的方式,將截取出來的每一個數(shù)字分別對應(yīng)到<imgsrc=’images/’>下的數(shù)字圖形。23任務(wù)8:圖形計數(shù)器的實現(xiàn)24任務(wù)8:圖形計數(shù)器的實現(xiàn)上述代碼可以進行進一步的改進,如果網(wǎng)站流量顯示的數(shù)字都是8位的(如果流量再大,位數(shù)可以增多),這樣就需要在計數(shù)值的前面補若干個0,此時需要修改counter.php文件,其內(nèi)容如下:25任務(wù)8:圖形計數(shù)器的實現(xiàn)26任務(wù)8:圖形計數(shù)器的實現(xiàn)27實訓(xùn)項目8主題:為留言板進行圖形版的訪問者計數(shù)器的開發(fā)、測試與實現(xiàn)。1.參考知識點(1)網(wǎng)站計數(shù)器的工作流程;(2)網(wǎng)站計數(shù)器的模塊結(jié)構(gòu)圖與流程圖;(3)如何使用PHP進行文件的操作;(4)如何使用PHP對字符串的操作;(5)如何使用HTML進行圖片的顯示。2.參考技能點(1)理解圖形版訪問者計數(shù)器的工作流程;(2)按照需求分析出訪問者計數(shù)器的模塊結(jié)構(gòu)并繪制出對應(yīng)的結(jié)構(gòu)圖和流程圖。28實訓(xùn)項目83.實訓(xùn)訓(xùn)練目的(1)理解訪問者計數(shù)器的工作流程;(2)分析訓(xùn)練。訓(xùn)練學(xué)生如何把實際的需求進行分類,轉(zhuǎn)化成功能模塊;(3)知識技能組織訓(xùn)練。訓(xùn)練學(xué)生能夠運用所學(xué)的知識和技能,辨證地選擇合適的技術(shù)去實現(xiàn)客戶的需求。4.實訓(xùn)步驟(1)設(shè)計流程圖訪問者進入網(wǎng)站后,若使用留言功能,系統(tǒng)便會利用PHP來執(zhí)行留言板模塊。而留言板模塊會存取數(shù)據(jù)庫中的留言板表。當(dāng)用戶使用留言功能時,由于必須取得用戶留言的時間及其IP地址,因此PHP便會通過系統(tǒng)去取得用戶的IP及留言的時間。通過這些可能發(fā)生的數(shù)據(jù)流程,便一次設(shè)計處一套流程圖,如下圖所示:2930實訓(xùn)項目8(2)模塊結(jié)構(gòu)圖留言板元件包含:①列表功能(message_list.php)②發(fā)布功能(message_post.php)③回復(fù)功能(message_reply.php)④修改功能(message_update.php)⑤刪除功能(包含于message_list.php)⑥執(zhí)行操作處理功能(message_process.php)⑦顯示功能(message_show.php)

31HTML元件包含:(請在客戶端用瀏覽器分別瀏覽這兩個文件)①上方功能欄(up.htm)②下方信息頁

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論