|
|
<?php $FileName = "Count.txt"; if (file_exists($FileName)) { $fp = fopen($FileName, "r+"); $Count = fread($fp, filesize($FileName)); if ($Count<=0) $Count = 1; else $Count++; rewind($fp); } else { $fp = fopen($FileName, "w"); $Count = 1; } fwrite($fp, $Count); fclose($fp); // 第一種方式 $CountStr = "" + $Count; $NumPic = ""; while (strlen($CountStr)>0) { $NumStr = substr($CountStr, strlen($CountStr)-1, 1); $CountStr = substr($CountStr, 0, strlen($CountStr)-1); $NumPic = "<img src='". $NumStr .".jpg'>". $NumPic; } echo "目前瀏覽人次 $NumPic 次<br>";
// 第二種方式 $NumPic = ""; while ($Count>0) { $Num = $Count - floor($Count/10)*10; $Count = floor($Count/10); $NumPic = "<img src='". $Num .".jpg'>". $NumPic; } echo "目前瀏覽人次 $NumPic 次"; ?> |
函式:
- 部份檔案函式請參見前一範例「留言板」範例說明。
- strlen(字串)
計算字串的長度。
- substr(字串, 起算位數, 取幾個)
截取字串,從起算位數開始取,一共取幾個,字串的第一位數是以0開始,第二位數則是1。
- floor(數字)
無條件捨去整數的小數位,只取整數。 |
結果:
- 目前瀏覽人次
次
- 目前瀏覽人次
次 |
說明:
- 準備10個圖形,分別從0.jpg∼9.jpg,例如
         ;如果你是準備.gif,別忘了把程式碼由.jpg改成.gif。
- 讀出舊人數,累加後並存回檔案(可參照前一範例說明)。
- 第一種方式:將上站人數先轉成字串後,逐一取最後一個字元,再顯示對應的圖形後,再將字串縮短截取,直到字串完全截取完為止。
- 第二種方式:直接取得上站人數,利用除以10求餘數的方式逐一取得個位數,再顯示對應的圖形後,然後將人數除以10,直到人數等於零為止。
- 先轉成字串再顯示圖形,主要是避免人數數值過長而產生的溢位錯誤。將Count.txt內容改成123456789123後,再比較兩種方式的結果。
- 在自己的網頁上多按幾次「重整」,就可以看到計數器的累加情形。
- 計數檔Count.txt及存放計數檔的目錄要設成有write的屬性,例如chmod a+w Count.txt和chmod a+w 目錄名。
- 做屬於自己的計數器雖然挺酷的,但是基本上為了不浪費頻寬,個人還是強烈建議還是使用前一範例的"純文字方式"計數器。
| |
|