原理:
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位訪客";
?>