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