不錯的記數器
可統計本年、月、日來訪人數 但不用MySQL 本人加入了跑馬燈效果
對了 這個記數器只能在UNIX系統上使用呦
防灌水 只要一個主程式即可(紀錄檔自動產生)
放置程式的資料夾權限請設777
<? // ~~~~主程式~~~~~ //################################
// 版本更新內容 // V1.0 計數器問世 // V1.1 修正鎖定IP功能 // V1.2 加入自行設定功能 // V1.3 加入圖片顯示功能 // V1.4 加入跑馬燈效果(By超愛牛奶) //################################
//================================== // 設定區 //==================================
//本計數器必需架設在Unix-Like作業系統 //請把計數器所在的目錄權限開成777
//計數器的記錄檔↓ $database = "counter.txt";
//IP的鎖定檔↓ $link = "ip.txt";
//鎖定同一個IP(防灌水)的秒數,設太高會增加系統負擔↓ $sec = "300";
//計數器與IP記錄檔案中每筆資料的分格記號(勿用.和數字)↓ $br = "@#~";
//是否使用圖片顯示,預設為1(0:不使用 1:使用) $pics = "0";
//使用圖片的話,圖片0~9的檔名(由上往下是0.1.2...9)↓ $pic[0] = "0.gif"; $pic[1] = "1.gif"; $pic[2] = "2.gif"; $pic[3] = "3.gif"; $pic[4] = "4.gif"; $pic[5] = "5.gif"; $pic[6] = "6.gif"; $pic[7] = "7.gif"; $pic[8] = "8.gif"; $pic[9] = "9.gif";
//網頁的標題↓ $title = "計數器V1.4";
//背景顏色(請用16進位RGB色彩碼)↓ $bgcolor = "#DDDDFF";
//文字顏色(說明同上)↓ $fgcolor = "#8888FF";
//文字大小(1~7),標準值是3↓ $fontsize = "2";
//================================== // 檢查資料 //==================================
$cd = file_exists($database); if($cd !=1){ $fp = fopen($database,"w"); chmod($database,0667); } $cd = file_exists($link); if($cd != 1){ $fp = fopen($link,"w"); chmod($link,0667); }
//================================== // 主程式 //==================================
$fp = fopen($database,"r"); $data = fread($fp,filesize($database)); $num = explode($br,$data); fclose($fp);
$fp = fopen($link,"r"); $locks = fread($fp,filesize($link)); $ip = explode($br,$locks); fclose($fp);
for($i = 0;$i < sizeof($ip);$i += 2){ $timeout = time(void) - $ip[$i + 1]; if($timeout >= $sec){ $ip[$i] = "null"; $ip[$i + 1] = "null"; } } for($i = 0;$i < sizeof($ip);$i += 2){ if($REMOTE_ADDR == $ip[$i]){ $add = "N"; break; } }
if(date("j") != $num[1]){ $num[1] = date("j"); $num[2] = "0"; }
if(date("n") != $num[3]){ $num[3] = date("n"); $num[4] = "0"; }
if(date("Y") != $num[5]){ $num[5] = date("Y"); $num[6] = "0"; }
if($add != "N"){ $ip[sizeof($ip)] = $REMOTE_ADDR; $ip[sizeof($ip)] = time(); for($i = 0;$i <= 6;$i += 2){ $num[$i] += 1; }
$fp = fopen($database,"w"); for($i = 0;$i <= 6;$i++){ $newnum = $newnum . $num[$i] . $br; } fwrite($fp,$newnum); fclose($fp);
$fp = fopen($link,"w"); for($i = 0;$i < sizeof($ip);$i++){ if($ip[$i] != "null"){ $newip = $newip . $ip[$i] . $br; } } fwrite($fp,$newip); fclose($fp); }
//================================== // HTML輸出 //================================== ?> <html> <head><title><? echo $title; ?></title></head> <body bgcolor = <? echo $bgcolor; ?>> <marquee direction="right"><font color = <? echo $fgcolor; ?> size = <? echo $fontsize .">";
if($pics != "1"){ echo "本日人氣:" . $num[2] . " "; echo $num[3] . "月人氣:" . $num[4] . " "; echo ($num[5] - 1911) . "年人氣:" . $num[6]; echo " 總人氣:" . $num[0]; }else{ echo "本日人氣:"; for($i=0;$i<strlen($num[2]);$i++){ $n = substr($num[2],$i,1); echo "<img src= $pic[$n]>"; } echo " " . $num[3] . "月人氣:"; for($i=0;$i<strlen($num[4]);$i++){ $n = substr($num[4],$i,1); echo "<img src= $pic[$n]>"; } echo " " . ($num[5] - 1911) . "年人氣:"; for($i=0;$i<strlen($num[6]);$i++){ $n = substr($num[6],$i,1); echo "<img src= $pic[$n]>"; } echo " 總人氣:"; for($i=0;$i<strlen($num[0]);$i++){ $n = substr($num[0],$i,1); echo "<img src= $pic[$n]>"; } } ?></marquee> </font> </body> </html>
|