登陆
首页>论坛> 建站编程交流区
[标题]:php统计IP及在线人数的实例代码
[版块]: 建站编程交流区
[时间]:2019年10月05日 15:57 - (768)阅
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等:
<?
/**
* 统计IP及在线人数
* edit www.jbxue.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 (file_exists("$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;
?>
[身份]:站长
[相关]:日记.相册.帖子.附件
[操作]:.收藏.举报.下载.复制.分享
[勋章]:站长管理员
[签名]: 下雨不爽!!
鲜花(1) 鸡蛋(0) 雷人(0) 路过(0) 

通知楼主 附件回复
亲!请注册|登陆后才能回复哦!
风雨 小兵 (离线) 沙发
时间2019年10月13日 00:18
*本条内容以被删除*
最新回复|查看1条回复
广告测试
最新发表更多>>
1.佳能打印机MG3680墨水清零教程(实用收藏/133阅/1回)
2.​WPS表格选中一个单元格使当前行和列变色怎么做(实用收藏/121阅/0回)
3.wps实用技巧精彩视频整理收集(实用收藏/125阅/0回)
返回帖子列表