阅 读 文 章

Perl源码:在线人数统计CGI程序剖释

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(不详) | 时间:2007-07-07 | 浏览:人次 ]

    在线人数统计CGI程序是很多网站都在使用的程序,此程序并不复杂,在这里我以逐行解释的方式来解剖此程序,希望对初学CGI编程的朋友有所帮助。
#!/usr/bin/perl #perl解释器路径
$path= "."; #默认当前主机的绝对路径
$overtime= 3000;#刷新时间, 单位秒,也就是说默认用户将在您的网站上停留多长时间
$buffer = $ENV{'QUERY_STRING'};#将由浏览器端递交来的参数(表单和包含URL中问号后面的参数)赋给变量$buffer。
@pairs = split(/&/, $buffer);
#由于递交来的参数都是用&来分隔的,所以将$buffer以&标志分割后赋给数组@pairs。
foreach $pair (@pairs) {
#进入循环
($name, $value) = split(/=/, $pair);
#由于在递交的参数时都是用name=value格式,所以这里以“=”标志来分割出参数名和参数的值分别赋给变量$name和$value。
############下面一段是对$value进行必要的处理和解码处理#########
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/\t/--/g;
$value =~ s/>/&gt;/g;
$value =~ s/</&lt;/g;
$FORM{$name} = $value;
#用变量$FORM{$name}来对应$value的值。
}
#结束循环。
##############################################################
$people=1;#将变量变$people(在线人数值)赋值1
($sec,$min,$hour,$mday,$mon,$year,$wan) = localtime(time);#读系统时间并将秒赋值给变量$sec;将分赋值给变量$min;将时赋值给变量$hour;将日赋值给变量$mday;将月赋值给变量$mon;将年赋值给变量$year;将星期赋值给变量$wan
$mon++;#因为代表月数[0,11],要将$mon加一之后才能符合实际情况。
open (FILE,"$path/ip.txt");#以只读方式打开ip记录数据文件,此文件是记录访客ip地址和访问时间的数据文件,其记录格式是:202.163.444.231,21,46,30数据之间用“,”分开以利进行数据分割。
@LINES=<FILE>; #以行方式读取ip.txt内的数据并赋给数组成@LINE.
close(FILE);#关闭ip.txt文件
open (FILE,">$path/ip.txt");#以写入方式打开ip.txt文件,注意:用此方式打开时原数据将被清空。
$check=0;#将变量$check赋予0
foreach(@LINES)
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 程序 统计 人数 源码 在线 变量 value FILE 文件 ip 时间

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.