Login
网站首页 > 文章中心 > 其它

包含php实现统计ip数及在线人数的词条

作者:小编 更新时间:2023-08-16 16:30:34 浏览量:307人看过

php怎样统计在线人数

php怎样统计在线人数

php

require_once('config.php');

function counter()

{

session_start();

$sql="select counter from counter";

$result=@mysql_query($sql);

if(!empty($result))

$row=mysql_fetch_array($result);

$counter=◆◆$row[counter];

if(!$_SESSION['counter'])

$query="update counter set counter=$counter";

$result=@mysql_query($query);

if($result)

$_SESSION['counter']=true;

}

$counter_len=strlen($counter);

for($i=0;$i$counter_len;$i◆◆)

$number=substr($counter,$i,1);

if(isset($number))

echo "img src='image/".$number.".gif'";

PHP如何统计在线人数

原理:根据不同的IP统计出当前有多少人在线.

实现方式:可以用数据库,也可以用文本.

我这里用了文本实现.

$user_online?=?"count.php";?//?保存人数的文件

touch?(?$user_online?);?//?如果没有此文件,则创建

$user_arr?=?file_get_contents?(?$user_online?);

$user_arr?=?explode?(?'#',?rtrim?(?$user_arr,?'#'?)?);

print_r?(?$user_arr?);

$temp?=?array?();

foreach?(?$user_arr?as?$value?)?{

$user?=?explode?(?",",?trim?(?$value?)?);

if?(($user?[0]?!=?getenv?(?'REMOTE_ADDR'?))?($user?[1]?time?()))?{?//?如果不是本用户IP并时间没有超时则放入到数组中

array_push?(?$temp,?$user?[0]?.?","?.?$user?[1]?);

array_push?(?$temp,?getenv?(?'REMOTE_ADDR'?)?.?","?.?(time?()?◆?($timeout))?.?'#'?);?//?保存本用户的信息

$user_arr?=?implode?(?"#",?$temp?);

//?写入文件

$fp?=?fopen?(?$user_online,?"w"?);

flock?(?$fp,?LOCK_EX?);?//?flock()?不能在NFS以及其他的一些网络文件系统中正常工作

fputs?(?$fp,?$user_arr?);

flock?(?$fp,?LOCK_UN?);

fclose?(?$fp?);

echo?"当前有"?.?count?(?$temp?)?.?"人在线";

PHP中如何实现在线人数的统计和显示

要使用数据库,建立一个表,比如名字是online,至少有以下列:

name_ip 存放登录用户名,未登录的存放IP,char类型

url 存放每个页面的地址,char类型

last_time 存放刷新页面的最后时间,int类型

表的主键是:name_ip◆url

每个页面一开始就要刷新这个表,使用的SQL是:

$name_ip='用户名或者IP';//你能搞定

$url=$_SERVER["PHP_SELF"];

$time=time();

$sql="replace delayed into online (name_ip,url,last_time) values ('$name_ip','$url',$time)";

mysql_query($sql);

获取某页面在线人数的查询是语句

$sql="select count(*) from online where url='$url' and last_time=$limit";

$res=mysql_query($sql);

list($online_count)=mysql_fetch_row($res);

mysql_free_result($res);

echo "本页面在线人数: $online_count";

php 统计在线人数 根据IP判断哪个地方多少人, 也就是说,某C段的多少人.这个样子,不知道怎么写判断.

$ip_part_count = array();

foreach($on as $k=$v){

for($i=0;$icount($ip_part);$i◆◆)

if($on[$k]['ip'] = $ip_part[$i] and $on[$k]['ip'] $ip_part[$i◆1]){

if(isset($ip_part_count[$i])){

$ip_part_count[$i]◆◆;

else{

$ip_part_count[$i] = 1;

这里写代码容易出错,不供测试,仅供参考

php如何实现记录网站在线人数

这个方法是我重网上找的,你可以看看:

主要原理:把每个访客的session ID 作为文件名,生成一个空白文件在指定的文件夹.如果检查到这份文件的生成时间已经超过了指定的时间,即删除.那么,统计文件的数量可以得到在线人数.

如果的代码放在一份独立的文件,网站所有页面的都引用这份代码.即访客每浏览一次页面都会调用一次此代码.

ob_start();

$num=0;

$dirpt = "online"; // 必须先建立一个online文件夹,存在下面要生成的文件

$reftime = 1;

if (is_dir($dirpt) $dir = opendir($dirpt)) {

while (($file = readdir($dir)) !== false) {

if(strcmp($file,"..")==0 || strcmp($file,".")==0){

continue;

$D_[date("Y-m-d H:i:s",filemtime($dirpt."/".$file))]=$file;

$num◆◆;

unset($cum);

closedir($dir);

$filename = session_id();

$fp = fopen($dirpt."/".$filename,"w");

fputs($fp,"");

fclose($fp);

$ntime = date("Y-m-d H:i:s",mktime(date("H"),date("i")-1,0,date("m"),date("d"),date("Y")));

$D_[$ntime]="-";

krsort($D_);

$onlinenumber=0;

while(1){

$vkey=key($D_);

$onlinenumber◆◆;

if(strcmp($ntime,$vkey)==0){

break;

}else{

array_shift($D_);

reset($D_);

while(count($D_)0){

$ckey=key($D_);

unlink($dirpt."/".$D_[$ckey]);

if(!next($D_)){

$online=$onlinenumber-1;

echo "当前在线".$online."人,";

echo $retime;

ob_end_flush();

thinkphp中如何获取用户的ip地址实现网站访问人数统计的计数器

thinkphp默认封装了获取ip方法:get_client_ip()

统计人数这个我也建议用cnzz,很方便,你想看的数据基本都能满足.

以上就是土嘎嘎小编为大家整理的包含php实现统计ip数及在线人数的词条相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章