1,用JS调用文件count.php
在需要加入统计的的地方,添加:
<script src="/php/count.php"></script>
2,php环境必须支持putenv()函数,可以统计昨日访问,今日访问,在线人数,您访问的次数。
3,在count.php同目录下创建文件:count,temp,online。新建文本文档count.txt,去掉扩展名即为count了;
linux系统中请设置文件属性为:777。
一,文件count.php代码,用到了php函数--explode、isset、empty及sprintf等:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | <? /** * 统计IP及在线人数 * edit www.jb200.com * date 2013/7/3 */ $file = "count" ; // 记数文件名称 $startno = "1000" ; // 起始数值 $tempfile = "temp" ; $t_now = time(); $t_array = getdate($t_now); $day = $t_array[ 'mday' ]; $mon = $t_array[ 'mon' ]; $year = $t_array[ 'year' ]; if (<a href= "http://www.jb200.com/zt/file_exists/" target= "_blank" class= "infotextkey" >file_exists</a>( "$file" )) { $count_info=file( "$file" ); $c_info = explode( "," , $count_info[0]); $total_c=$c_info[0]; $yesterday_c=$c_info[1]; $today_c=$c_info[2]; $lastday=$c_info[3]; } else { $total_c= "$startno" ; $yesterday_c= "0" ; $today_c= "0" ; $lastday= "0" ; } if ( !isset($HTTP_COOKIE_VARS[ "countcookie" ]) || $HTTP_COOKIE_VARS[ "countcookie" ] != $day) { $your_c=1; $lockfile=fopen( "temp" , "a" ); flock($lockfile,3); putenv( 'TZ=JST-9' ); $t_array2 = getdate($t_now-24*3600); $day2=$t_array2[ 'mday' ]; $mon2=$t_array2[ 'mon' ]; $year2=$t_array2[ 'year' ]; $today = "$year-$mon-$day" ; $yesterday = "$year2-$mon2-$day2" ; if ($today != $lastday) { if ($yesterday != $lastday) $yesterday_c = "0" ; else $yesterday_c = $today_c; $today_c = 0; $lastday = $today; } $total_c++; $today_c++; $total_c = sprintf( "%06d" , $total_c); $today_c = sprintf( "%06d" , $today_c); $yesterday_c = sprintf( "%06d" , $yesterday_c); setcookie( "countcookie" , "$day" ,$t_now+43200); $fp=fopen( "$file" , "w" ); fputs($fp, "$total_c,$yesterday_c,$today_c,$lastday" ); fclose($fp); fclose($lockfile); } if ( empty( $your_c ) ) $your_c = 1; setcookie( "yourcount" ,$your_c+1,$t_now+43200); $your_c = sprintf( "%06d" , $your_c); //////////////////////////开始统计在线 $filename= "online" ; $onlinetime=600; //同一IP在线时间,单位:秒 $online_id=file($filename); $total_online=count($online_id); $ip=getenv( "REMOTE_ADDR" ); $nowtime=time(); for ($i=0;$i<$total_online;$i++){ $oldip=explode( "||" ,$online_id[$i]); $hasonlinetime=$nowtime-$oldip[0]; if ($hasonlinetime<$onlinetime and $ip!=$oldip[1]) $nowonline[]=$online_id[$i]; } $nowonline[]=$nowtime. "||" .$ip. "||" ; $total_online=count($nowonline); $fp=fopen($filename, "w" ); rewind($fp); for ($i=0;$i<$total_online;$i++){ fputs($fp,$nowonline[$i]); fputs($fp, "n" ); } fclose($fp); if ($total_online==0)$total_online=1; $total_online = sprintf( "%06d" , $total_online); /////////////////////////////////////////////////////// echo "document.write(" ·总IP访问: ".$total_c." ");" ; echo "document.write(" <br> ");" ; echo "document.write(" ·昨日访问: ".$yesterday_c." ");" ; echo "document.write(" <br> ");" ; echo "document.write(" 今日IP: ".$today_c." ");" ; echo "document.write(" ");" ; echo "document.write(" ·您 访 问: ".$your_c." ");" ; echo "document.write(" <br> ");" ; echo "document.write(" 当前在线: ".$total_online." ");" ; exit; ?> |