访客[分享]网页计数器的原理

网页计数器  时间: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@eyeintegrated. commedify by Wilson Peng

*/

$counterFi le = "/tmp/counter.txt";function displayCounter($counterFile) {

$fp = fopen($counterFi le, "rw") ;

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

$num += 1;print "您是第". "$num". "位无聊份子";exec( "rm -rf $counterFile") ;exec( "echo $num > $counterFile") ;

}if ( !file_exists($counterFile)) {exec( "echo 0 > $counterFile") ;

}displayCounter($counterFile) ;

?>

Copyright ? 1998 David W. Bettis

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

就一切OK。

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

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

别忘了重新启动Apache伺服器新增的include路径才有效。./apachectl restart

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

下面就是MyCounter() 函式。为了让读者方便了解程式中的变数$counterFile、 $fp及$num保持和David W. Bettis所设定的计数器中的变数功能相同。file &://---------------------------

//访客计数器函式MyCounter()

// Author: Wilson Peng

// Copyright (C) 1999file &://---------------------------function MyCounter() {

$counterFi l e="/tmp". $GLOBALS["PHP_SELF"] ;if ( !file_exists($counterFile)) {if ( !file_exists(dirname($counterFile)) ) {mkdir(dirname($counterFi l e) , 0700) ;

}exec("echo 0 > $counterFile") ;

}

$fp = fopen($counterFi le, "rw") ;

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

$num += 1;print "$num";echo $counterFile;exec("rm -rf $counterFile") ;exec("echo $num > $counterFi le") ;

}

?>

Copyright ? 1999, Wilson Peng

当然要用的话要加Homepage中嵌入MyCounter() 函式就可以使用了。require("counter. inc") ;

?>

您是第位参观者

Copyright ? 1999, Wilson Peng

要用这个MyCounter() 函式先在Homepage的开头处加入require() 函式 引入MyCounter() 函式成为该Homepage的一部份。之后再将字串放在需要计数器的地方就可以了。function MyCounter() {

:

:

}

在建立函式时需要用上面的格式。在自订函式名称前加入funct i on字串。

每页有用到MyCounter() 的Homepage都会在/tmp之后加入该页的路径这可以用$PHP_SELF变数达成。

$counterFi le="/tmp". $GLOBALS["PHP_SELF"] ;

当然若您要将/t mp改成别的目录也可以不然在S U N等伺服器要是reboot /tmp中的东西都没了要重新开始再计数了。若您不知要使用什么目录建议使用/var/log/counter这个目录和其它

的log等变动资料放在一起。if ( !file_exists($counterFile)) {if ( !file_exists(dirname($counterFile)) ) {mkdir(dirname($counterFi l e) , 0700) ;

}exec("echo 0 > $counterFile") ;

}

这五行主要是检查$counterFile是否存在若档案不存在则看目录是否存在决定要不要建立目录。之后就建立档案并写入0。$fp = fopen($counterFi le, "rw") ;

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

$num += 1;print "$num";echo $counterFile;

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

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

inlicloud48元/月,云主机,2核1G/200Mbps,可选安徽/上海联通/广州移动/江门移动NAT

inlicloud怎么样?inlicloud(引力主机)主要产品为国内NAT系列VPS,目前主要有:上海联通NAT(200Mbps带宽)、宿州联通NAT(200Mbps带宽)、广州移动NAT(200Mbps带宽)。根据官方的说法国内的NAT系列VPS不要求备案、不要求实名、对中转要求也不严格,但是,禁止任何形式的回国!安徽nat/上海联通/广州移动/江门移动nat云主机,2核1G/200Mbps仅...

快云科技,美国VPS 2H5G独享20M 仅售19.8/月  年付仅需148

快云科技已稳步运行进两年了 期间没出现过线路不稳 客户不满意等一系列问题 本司资质齐全 持有IDC ICP ISP等正规手续 有独特的网站设计理念 在前几天刚是参加过魔方系统举行的设计大赛拿获最佳设计奖第一名 本公司主营产品 香港弹性云服务器,美国vps和日本vps,香港物理机,国内高防物理机以及美国日本高防物理机 2020年的国庆推出过一款香港的回馈用户特惠机 已作为传家宝 稳定运行 马上又到了...

RAKsmart美国VPS上市,活动期间5折抢购仅$30,$1.99/月

RAKsmart机房将于7月1日~7月31日推出“年中大促”活动,多重惊喜供您选择;爆款I3-2120仅30美金秒杀、V4新品上市,活动期间5折抢购、爆款产品持续热卖、洛杉矶+硅谷+香港+日本站群恢复销售、G口不限流量产品超低价热卖。美国VPS、日本VPS及香港VPS享全场7折优惠;爆款VPS $ 1.99/月限量秒杀,10台/天,售完即止, VPS 7折优惠码:VPS-TP-disRAKsmar...

网页计数器为你推荐
华师京城虚拟仿真实验室软件flashfxpflashfxp怎么用?http404未找到HTTP 404 - 未找到文件,怎么解决啊access数据库修复Access数据库恢复,有些表被损坏或有些表的部分记录被损坏,求解啊filezillaserver谁用过FileZilla_Server啊,请教重庆杨家坪猪肉摊主杀人重庆忠县的猪肉市场应该好好整顿一下了。6月份我买到了母猪肉。今天好不容易才下定决心去买农贸市场买肉。重庆杨家坪猪肉摊主杀人昨天重庆九龙坡出了严重交通事故吗重庆杨家坪猪肉摊主杀人在毫无预兆的情况下,对方激情杀人(持械偷袭)——作为习武者,你该怎么办?重庆电信dns重庆电信的DNS是什么360免费建站免费空间-360免费建站空间是多大?
linux主机 查询ip 香港服务器租用 中文域名申请 域名备案收费吗 星星海 hostgator 256m内存 2014年感恩节 英文简历模板word godaddy优惠券 免费ddos防火墙 网盘申请 个人空间申请 坐公交投2700元 创梦 最好的免费空间 789电视 nerds 广州服务器 更多