PHP - 自行製作瀏覽人數計數器 ^ ^
PHP - 計數器的寫法
使用開啟檔案 fopen()、寫入檔案 fwrite() 這二個函數,即可輕鬆寫出計數器了。笨兔的小站右上角計數器就是如此產生的!^ ^
先說明一下這二個函數的基本用法:
fopen(file,mode)
file:開啟的檔案或URL,必須為 PHP 可開啟的權限與內容。
mode:開啟模式。常用模式表如下:
模式 | 說明 |
r | 開啟檔案,以供讀取,從檔案開頭開始 |
r+ | 開啟檔案,以供讀取及寫入,從檔案開頭開始 |
w | 開啟檔案,並寫入(覆寫) |
w+ | 開啟檔案,以供讀取及寫入(覆寫) |
x | 開啟檔案並寫入,假如檔案已存在,不會開啟開檔,fopen()會回傳false |
x+ | 開啟檔案,供讀取及寫入,假如檔案已存在,不會開啟開檔,fopen()會回傳false |
a | 開啟檔案,以供新增內容,接續在目前已有的內容之後開始寫入,假如檔案不存在,會建立一個新檔 |
a+ | 開啟檔案,以供新增及讀取內容,接續在目前已有的內容之後開始寫入,假如檔案不存在,會建立一個新檔 |
c | 以寫入模式打開文件,指針指向文件開頭,如果文件不存在,fopen 嘗試創建 |
c+ | 以讀寫模式打開文件,指針指向文件開頭,如果文件不存在,fopen 嘗試創建 |
fwrite(file,string,length)
file:要寫入打開的文件。
string:要寫入的字串。
length:要寫入的最大字節數。(此可省略不設)
計數器寫法,須先建立一個文字檔放在同目錄下 (或放那裡皆可,,要打開該檔時的路徑對即可),並在裡面輸入您要起始的數字。
範例:笨兔以在同目錄下建立一個 html_016.txt,並在裡面輸入起始數字1後存檔為例。您可直接複製所有程式碼,另存成一個 php 檔來觀看唄 ^^ (當然須再自創一個內容為1的html_016.txt檔,若要數字圖版,則須自創0~9圖檔唄!)
<?php
session_start(); //用session來控制,避免瀏覽人數透過重新整理加以灌水 //計數器
$countfile=fopen("html_016.txt","r"); //用fopen以唯讀(r)方式打開 html_016.txt
$countnum=fgets($countfile); //用fgets讀取裡面的資料
fclose($countfile); //關閉html_016.txt
if($_SESSION['countuser']!='Y'){ //若第一次進入
$countnum++; //讀取出的數字+1
$countfile=fopen("html_016.txt","w"); //用fopen以寫入(w)方式打開 html_016.txt
fwrite($countfile,$countnum); //用fwrite將剛+1後的數字寫入 html_016.txt
fclose($countfile); //關閉counter.txt
$_SESSION['countuser']='Y'; //用session標記瀏覽者,這樣沒關閉瀏覽器的情況下,他下次進來的時候計數器就不會增加 } ?> <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>喵喵笨兔 の 喵喵的家~遊戲天地 - PHP 自行製作瀏覽人數計數器 ^ ^</title>
</head>
<body> <p>瀏覽人數(純數字版):<?php echo $countnum; ?></p>
<p>瀏覽人數(數字圖版):
<?php
//若要以數字圖來顯示,須做 0~9 的數字圖,下例笨兔以做成 0.gif ~ 9.gif 放在 gif 目錄內為例,寫法如下:
$numlen = strlen($countnum); //計算訪客數是幾位數
for($i=0;$i<$numlen;$i++){ //有幾位數就跑幾次迴圈
$imgnum = substr($countnum, $i ,1); //訪客數字串從左邊第幾個字取一個字(左至右是以0開始算)
echo "<img src=gif/".$imgnum.".gif width=23 height=40 />"; //顯示與取出數字相同的數字圖,寛width和height再依自己做的圖來設定
}
?>
</p>
</body> </html>
範例結果:(下次您重啟再進來就不是現在看到的數字了^^)
瀏覽人數(純數字版):555
瀏覽人數(數字圖版):