- 在线人数统计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/>/>/g;
$value =~ s/</</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 时间
注册
个人空间
