访客计数器是让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");
最后将计数器档案删除再重新建立一个
NameCheap商家如今发布促销活动也是有不小套路的,比如会在提前一周+的时间告诉你他们未来的活,比如这次2021年的首次活动就有在一周之前看到,但是这不等到他们中午一点左右的时候才有正式开始,而且我确实是有需要注册域名,等着看看是否有真的折扣,但是实际上.COM域名力度也就一般需要51元左右,其他地方也就55元左右。当然,这次新年的首次活动不管如何肯定是比平时便宜一点点的。有新注册域名、企业域...
hostkvm在2021年3月新上线洛杉矶新VPS业务,强制三网接入中国联通优化线路,是当前中美之间性价比最高、最火热的线路之一,性价比高、速度非常好,接近联通AS9929和电信AS4809的效果,带宽充裕,晚高峰也不爆炸。 官方网站:https://hostkvm.com 全场优惠码:2021(全场通用八折,终身码,长期) 美国 US-Plan0【三网联通优化线路】 内存:1G CPU:...
diyvm怎么样?diyvm是一家国内成立时间比较久的主机商家了,大约在6年前站长曾经用过他家的美国机房的套餐,非常稳定,适合做站,目前商家正在针对香港沙田机房的VPS进行促销,给的是五折优惠,续费同价,香港沙田机房走的是CN2直连的线路,到大陆地区的速度非常好,DiyVM商家采用小带宽不限流量的形式,带宽2Mbps起步,做站完全够用,有需要的朋友可以入手。diyvm优惠码:五折优惠码:OFF50...