网页计数器的原理
访客计数器是让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") ;
最后将计数器档案删除再重新建立一个
我们一般的站长或者企业服务器配置WEB环境会用到免费版本的宝塔面板。但是如果我们需要较多的付费插件扩展,或者是有需要企业功能应用的,短期来说我们可能选择按件按月付费的比较好,但是如果我们长期使用的话,有些网友认为选择宝塔面板企业版或者专业版是比较划算的。这样在年中大促618的时候,我们也可以看到宝塔面板也有发布促销活动。企业版年付899元,专业版永久授权1888元起步。对于有需要的网友来说,还是值...
韩国云服务器哪个好?韩国云服务器好用吗?韩国是距离我国很近的一个国家,很多站长用户在考虑国外云服务器时,也会将韩国云服务器列入其中。绝大部分用户都是接触的免备案香港和美国居多,在加上服务器确实不错,所以形成了习惯性依赖。但也有不少用户开始寻找其它的海外免备案云服务器,比如韩国云服务器。下面云服务器网(yuntue.com)就推荐最好用的韩国cn2云服务器,韩国CN2云服务器租用推荐。为什么推荐租用...
点击进入亚云官方网站(www.asiayun.com)公司名:上海玥悠悠云计算有限公司成都铂金宿主机IO测试图亚洲云Asiayun怎么样?亚洲云Asiayun好不好?亚云由亚云团队运营,拥有ICP/ISP/IDC/CDN等资质,亚云团队成立于2018年,经过多次品牌升级。主要销售主VPS服务器,提供云服务器和物理服务器,机房有成都、美国CERA、中国香港安畅和电信,香港提供CN2 GIA线路,CE...