返回列表 上一主題 發帖

6-4 實例:網頁計數器

6-4 實例:網頁計數器

6-4   實例:網頁計數器
Session物件的生命週期起始於PWS/IIS 開始運作且有人開始連線時。終止於 PWS/IIS 關閉,或客戶端瀏覽器未於特定時間內再向伺服器要求資訊,所以Session物件物件並不是永遠存在的!況且,對於所有的連線瀏覽者而言,都個別擁有一個『私用』的 Session 物件,所以,Session物件並不適合用於建立計數器。

Cookie物件將資訊建立於客戶端瀏覽器的,更不適合於計數器;反觀檔案式的計數器乃利用檔案的存取來記錄計數資料,也就是說:我們的計數器計次資料將會被儲存在一個特定的資料檔案中,計數資料的保存並不會因時間的改變而消失,或是因為伺服器進行維護而使計數器計次資料被歸零。
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

補充:

filesize()函數:取得檔案的大小。
filesize()函數格式
  1. int filesize ( string filename)
複製代碼
若有錯誤發生回傳False,否則回傳檔案大小(bytes)。


is_readable()函數:判斷檔案能否讀取。
is_readable()函數格式
  1. bool is_readable ( string filename)
複製代碼
若檔案可讀取資料(非唯寫),則回傳Trrue,否則False。


is_readable()函數:判斷檔案能否讀取。
is_writeable()函數格式
  1. bool is_writeable ( string filename)
複製代碼
若檔案可寫入資料(非唯讀),則回傳Trrue,否則False。
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

TOP

為了使我們辛苦累積的瀏覽人次計數器資料不至於人間蒸發,所以我們必須利用檔案資料處理函數的優勢與特點,統合運用來設計我們的計數器,下例即為統合檔案資料處理函數來製作計數器的程式網頁內容:
txtcount.php
  1. <?
  2. $countfile="count.txt";
  3. global $num;
  4. if (file_exists($countfile))
  5.    {
  6.     $file=fopen($countfile,"r");
  7.     $num=fgets($file,filesize($countfile)+1);
  8.     $num++;
  9.     fclose($file);
  10.    }
  11. else
  12.    {
  13.     $num="1";
  14.    }
  15. $file=fopen($countfile,"w");
  16. fwrite($file,$num);
  17. fclose($file);
  18. ?>

  19. <html>
  20. <head>
  21. <meta http-equiv="Content-Language" content="zh-tw">
  22. <meta http-equiv="Content-Type" content="text/html; charset=big5">
  23. <title>簡單實用的文字計數器</title>
  24. </head>
  25. <body>
  26. <p align="center"><font size="5">簡單實用的文字計數器</font></p>
  27. <hr>
  28. <p align="center"><b><font color="#FF0000">
  29. 參觀人次:<?=$num?></font></b></p>
  30. </body>
  31. </html>
複製代碼

  • 程式碼第4行:當一有新的瀏覽者連結進入網頁開始瀏覽時就先執行『檔案檢驗』這行PHP程式敘述,利用file_exists()函數檢驗檔案是否存在,如此一來,可避免計數資料檔不存在而造成程式的失誤。
  • 程式碼第6~9行:當計數資料檔存在時,則利用fopen()函數開啟計數資料檔,接著使用fgets()函數取得計次次數資料,將繼次資料+1後,就是最新的計次次數資料。
  • 程式碼第11~14行:當計數資料檔存在時,代表網頁尚未有人瀏覽,此時的瀏覽者即為第1人。
  • 程式碼第15~17行:利用fopen()函數開啟或建立自動計數資料檔為寫入狀態,將最新的計次次數資料透過fwrite()函數寫入檔案中保存。



圖6-27  文字型計數器。
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

TOP

        靜思自在 : 一個缺口的杯子,如果換一個角度看它,它仍然是圓的。
返回列表 上一主題