访客网页计数器的原理

网页计数器  时间:2021-03-20  阅读:()

访客计数器是让Web访客知道该网页或者网站的人气指数最直接的方法。尤其是想利用网页赚钱的人访客人数是找广告商最好的说词。当然可以将网站来访人数写成统计报表但总是感觉直接看到比较真实到底眼见为凭。

在上图中访客计数器的流程如下

1. .第一位使用者浏览某页。

2. .伺服器程式从资料库或档案中读取该页被浏览次数。

3. .将次数加一储存并将它送回第一位使用者。

4. .第二位使用者浏览某页。

5. .伺服器程式从资料库或档案中读取该页被浏览次数。

6. .将次数再加一储存并将它送回第二位使用者。

P HP在没有特殊的访客计数器函式但是我们可以用P HP的强大功能自已写一个访客计数器函式。

以下的函式是访客计数器的原型是由David W.Bettis所提供并经过作者少许修改。

/*simple access counter for php3

(c)1998 David W.Bettisdbettis@eye inte grated.c ommedify by Wilson Peng

*/

$counter F ile="/tmp/c o unter.txt";func tion d i splayCounter($c ounte rF ile) {

$fp=fop e n($co unterF ile,"rw");

$num=fg et s($fp,5);

$num+=1;p r int "您是第"."$num"."位无聊份子";exec( "rm-rf$co unterFile");exec( "ec ho$num>$count e rF ile");

}if(!file_e xists($co unte rFile)) {exec( "echo 0>$counterF ile");

}disp layC o unte r($counterF ile);

?>

Copyright? 1998 David W.Bettis

在读取到本页时 PHP程式先找寻/tmp/c ounte r.txt档案是否存在若不存在则建立一个counte r.txt档案然后将0写入档案。然后读取count er.txt档案的内容也就是纯文字档再将内文的数字存入$num变数中。在$num的变数出现在浏览器前还有经过加一的动作让使用者可以增加。当然如果想灌水就在加一动作时加二或者加三不过自欺是无用的。最后将访客人数再回存/tmp/count er.txt就一切OK。

当然每一页都要这样写 岂不麻烦到了极点。这时我们可以利用P HP提供的re qu ire()功能将计数器整理成一个函式酱子在使用上就方便多多了。

首先要先将Apache的设定档(httpd.conf)加入PHP include档案的路径。例如要设所有的include档都在http://abcdefghijk.com.tw/include中可以在httpd.conf加入下面的例子php3_include_path. : ./inc lude: . ./include

别忘了重新启动Apache伺服器新增的inc lude路径才有效。

./apachectl restart

再来就在伺服器的. . ./include目录中放入以下的档案档名存成c o unter.in c

下面就是MyC ount e r()函式。为了让读者方便了解程式中的变数

$counterF ile、 $fp及$num保持和David W.Bettis所设定的计数器中的变数功能相同。file&://---------------------------

//访客计数器函式MyC ount er()

//Author:Wilson P eng

//Co pyright(C) 1999file&://---------------------------func tio n MyC ounter() {

$counterF ile="/tmp".$GLO B ALS["PHP_S ELF"];if(!file_e xists($counterF ile)) {if(!file_e xists(dirname($c ounte rF ile))) {mkd ir(d irna me($counterF ile),0700);

}

exe c("echo 0>$counterF ile");

}

$fp=fo pen($counterF ile,"rw");

$num=fge ts($fp,5);

$num+=1;p r int "$num";echo$counterF ile;exec("rm-rf$co unterFile");exec("echo$num>$counterFile");

}

?>

Copyright? 1999,Wils on Peng

当然要用的话要加Ho mep age中嵌入MyCounter()函式就可以使用了。re quir e("c o unter.inc");

?>

您是第位参观者

Copyright? 1999,Wilson Peng

要用这个MyC o unter()函式先在Ho mep age的开头处加入require()函式 引入MyC o unter()函式成为该Ho mep age的一部份。之后再将字串放在需要计数器的地方就可以了。func tio n MyC ounter() {

:

:

}

在建立函式时需要用上面的格式。在自订函式名称前加入functio n字串。每页有用到MyC ount er()的Ho mepage都会在/tmp之后加入该页的路径这可以用$P HP_S E LF变数达成。

$counte rFile="/tmp".$GLO BAL S["P HP_S ELF"];

当然若您要将/tmp改成别的目录也可以不然在SUN等伺服器要是reboot/tmp中的东西都没了要重新开始再计数了。若您不知要使用什么目录建议使用/va r/lo g/counter这个目录和其它的log等变动资料放在一起。if(!file_exis ts($c ounterF ile)) {if(!file_exis ts(d irname($counterF ile))) {mkdir(dirname($counterF ile),0700);

}exec("echo 0>$counterF ile");

}

这五行主要是检查$counterF ile是否存在若档案不存在则看目录是否存在决定要不要建立目录。之后就建立档案并写入0。

$fp=fop e n($co unterF ile,"rw");

$num=fg et s($fp,5);

$num+=1;p r int "$num";echo$counterF ile;

这五行就是打开计数器存放的档案并将它累加后的结果送到浏览器端。exec("rm-rf$counterF ile");exec("e cho$num>$counterF ile");

最后将计数器档案删除再重新建立一个

GreenCloudVPS$20/年多国机房可选,1核@Ryzen 3950x/1GB内存/30GB NVMe/10Gbps端口月流量2TB

GreencloudVPS此次在四个机房都上线10Gbps大带宽VPS,并且全部采用AMD处理器,其中美国芝加哥机房采用Ryzen 3950x处理器,新加坡、荷兰阿姆斯特丹、美国杰克逊维尔机房采用Ryzen 3960x处理器,全部都是RAID-1 NVMe硬盘、DDR4 2666Mhz内存,GreenCloudVPS本次促销的便宜VPS最低仅需20美元/年,支持支付宝、银联和paypal。Gree...

妮妮云80元/月,香港站群云服务器 1核1G

妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...

GigsGigsCloud 春节优惠2022 指定云服务器VPS主机85折循环优惠码

GigsGigsCloud商家在之前介绍的还是比较多的,因为之前我一直有几台机器在使用,只是最近几年网站都陆续转型删除掉不少的网站和闲置域名,包括今年也都减少网站开始转型自媒体方向。GigsGigsCloud 商家产品还是比较有特色的,有提供香港、新加坡等亚洲机房的云服务器、VPS和独立服务器等。第一、新春优惠活动优惠码:CNY2022-15OFF截止到正月初二,我们可以使用上述优惠码在购买指定G...

网页计数器为你推荐
操作httpsqlserver数据库电脑如何找到sql server数据库flashfxp下载怎样用FlashFXP从服务器下载到电脑上?重庆电信dns重庆电信 路由器连接另一个电脑,本地连接的IP是多少,?DNS首选,备用 服务器是多少?生药http三友网怎么是“三友”tumblr上不去我家里的网络打不开个别网站即时通平台寻找娱乐高科技产品discuz教程Discuz! Database Error怎么解决啊?我的电脑打不开这个网啊很久了。其他电脑可以。joomla模板你好, 能不能详细说一下怎么安装Joomla模板的Quick Start安装. 我这边装整天提示不能连接MySQL. 谢谢
虚拟主机提供商 vps服务器 directspace dreamhost 创梦 web服务器架设 电子邮件服务器 789电视 股票老左 699美元 流媒体加速 国外视频网站有哪些 免费ftp 免费asp空间 lamp的音标 徐州电信 攻击服务器 云销售系统 tracker服务器 中美互联网论坛 更多