原理:
1.第一位使用者瀏覽某頁。
2.伺服器程式從資料庫或檔案中讀取該頁被瀏覽次數。
3.將次數加一儲存,並將它送回第一位使用者。
4.第二位使用者瀏覽某頁。
5.伺服器程式從資料庫或檔案中讀取該頁被瀏覽次數。
6.將次數再加一儲存,並將它送回第二位使用者。
需要瞭解的函數:
fopen()開啟檔案
filesize()獲得檔案大小
fseek()移動檔案指標
fgets()得到檔案指標所在行內容
fputs()將字串寫如檔案指標所在位置
fclose()關閉檔案
file_exists()判斷檔案是否存在
exec()執行外部程式
最簡單的記數器:
<html>
<head>
<title>訪客計數器 原型</title>
</head>
<body>
<?php
/*
(c)1998 David W. Bettis
這裡是著作權資訊
*/
$counterFile = "counter.txt";
#這裡是定義記數器檔案
function displayCounter($counterFile) {
$fp = fopen($counterFile,"rw");
#開啟檔案,用讀寫方式
$num = fgets($fp,5);
#取得當前數字
$num += 1;
#加1
print "您是第 "."$num"." 位無聊份子";
exec( "rm -rf $counterFile");
exec( "echo $num > $counterFile");
#偷懶的方式哦,不使用fputs寫入
}
if (!file_exists($counterFile)) {
exec( "echo 0 > $counterFile");
}#如果記數器檔案不存在,建立它並設定內容為0
displayCounter($counterFile);
?>
</body>
</html>
PHP記數器比較簡單版:
<?
#著作權沒有啦,這麼簡單
$fp=fopen("counter.txt","r+");
flock($fp,3);
#開啟記數器檔案並鎖住
$fsize=filesize("count.txt");
$count=fgets($fp,$fsize+1);
$count++;
#取得數位並加一
fseek($fp,0);
fputs($fp,$count);
fclose($fp);
#將新數位寫入檔案
echo "你是第 $count 位訪問者";
?>
PHP記數器圖形版:
製作10個圖片,將數字串用圖片組起來,我就不細說了
假設圖片為0.gif ~ 9.gif
<?
....$count為取得的數值
$strcount=strval($count);
$strcount=chop($strcount);
$countlen=$strlen($strcount);
$shtml="";
for ($i=0; $i<$countlen; $i++) {
$shtml.="<img src='";
$shtml.=$strcount[$i];
$shtml.=".gif'>";
}
echo $shtml;
?>
PHP記數器資料庫版:
使用SQL記數器,先建好表
CREATE TABLE counter
(
counter int not null,
id �����int not null
)
INSERT INTO counter(counter,id) VALUE(0,1)
<?
$conn=mysql_connect(..., ..., ...);
#MySQL資料庫連接
$sql="select * from counter";
$result=mysql_query($sql,$conn);
$objresult=mysql_fetch_object($result);
$count=$objresult->counter;
$count++;
$sql="update counter set counter=".$count."where id=1";
mysql_query($sql,$conn);
mysql_close($conn);
echo "你是第$count位訪客";
?>