热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php如何在线记录人数(php数据统计)

导读:今天编程笔记来给各位分享关于php如何在线记录人数的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览:

导读:今天编程笔记来给各位分享关于php如何在线记录人数的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:


  • 1、PHP如何统计在线人数


  • 2、php怎样统计在线人数


  • 3、我想用php制作一个在线聊天室,怎么统计在线人数啊?


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

PHP如何统计在线人数

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

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

我这里用了文本实现。

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

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

$timeout = 30; // 30秒内没动作者,认为掉线

$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怎样统计在线人数

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制作一个在线聊天室,怎么统计在线人数啊?

根据会话数来统计在线人数.

一般是这样的,在数据库中记录每个用户的会员数据,并且用户的每一次动作都update他的最后动作时间.那么统计在线人数就是统计某段时间内有动作的用户即可.一般5分钟或者10分钟.

上面是靠用户自己的操作来更新在线时间的.你也可以在用户停留的页面弄个JS,隔个2分钟就做个ajax请求,自动更新用户的最后的在线时间,

ps 如果你不想修改session存到mysql,memcached等里面,则可以根据session_id()来获取PHPSESSID来作为身份标识,

然后要在程序中写上随机删除过期很久了的会话.

至于聊天记录.你肯定是要保存在服务器端的,至于读取.可以通过AJAX几秒来获取一次数据库里面的内容,当然,在获取记录的时候,你需要记录你获取的时间,然后下次获取的时候只呀这个时间后的,如果有数据,则追加到当前聊天记录后面,否则保持不变.

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

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

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

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

?php

ob_start();

session_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_);

}

}

array_shift($D_);

reset($D_);

while(count($D_)0){

$ckey=key($D_);

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

if(!next($D_)){

break;

}

}

}else{

@chmod("..",0777);

@mkdir($dirpt,0777);

}

$Online=$onlinenumber-1;

$retime=60*$reftime;

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

echo $retime;

ob_end_flush();

?

结语:以上就是编程笔记为大家介绍的关于php如何在线记录人数的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


推荐阅读
  • 本文将继续探讨 JavaScript 函数式编程的高级技巧及其实际应用。通过一个具体的寻路算法示例,我们将深入分析如何利用函数式编程的思想解决复杂问题。示例中,节点之间的连线代表路径,连线上的数字表示两点间的距离。我们将详细讲解如何通过递归和高阶函数等技术实现高效的寻路算法。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 2.2 组件间父子通信机制详解
    2.2 组件间父子通信机制详解 ... [详细]
  • 利用PHP循环高效处理多条帖子表单数据 ... [详细]
  • 当使用 `new` 表达式(即通过 `new` 动态创建对象)时,会发生两件事:首先,内存被分配用于存储新对象;其次,该对象的构造函数被调用以初始化对象。为了确保资源管理的一致性和避免内存泄漏,建议在使用 `new` 和 `delete` 时保持形式一致。例如,如果使用 `new[]` 分配数组,则应使用 `delete[]` 来释放内存;同样,如果使用 `new` 分配单个对象,则应使用 `delete` 来释放内存。这种一致性有助于防止常见的编程错误,提高代码的健壮性和可维护性。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 本文详细探讨了JavaScript中数组去重的各种方法,并通过实际代码示例进行了深入解析。文章首先介绍了几种常见的去重技术,包括使用Set对象、过滤方法和双重循环等。每种方法都附有具体的实现代码,帮助读者更好地理解和应用这些技术。此外,文中还讨论了不同方法在性能上的优劣,为开发者提供了实用的参考。 ... [详细]
  • 在探讨 MySQL 正则表达式 REGEXP 的功能与应用之前,我们先通过一个小实验来对比 REGEXP 和 LIKE 的性能。通过具体的代码示例,我们将评估这两种查询方式的效率,以确定 REGEXP 是否值得深入研究。实验结果将为后续的详细解析提供基础。 ... [详细]
  • 在Node.js中调用MySQL存储过程`updateUser(p1, p2, @p3)`时,其中`@p3`为输出参数。若更新操作失败,则返回0;成功则返回1。本文将详细介绍如何正确获取存储过程的返回结果,并确保在实际应用中能够顺利执行。 ... [详细]
  • 本文探讨了利用JavaScript实现集合的对称差集算法的方法。该算法旨在处理多个数组作为输入参数,同时保留每个数组中元素的原始顺序。算法不会移除单个数组内的重复元素,但会删除在不同数组之间出现的重复项。通过这种方式,能够有效地计算出多个数组的对称差集。 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • 深入探索 JavaScript 中 Array 数组对象的基本操作与应用
    深入探索 JavaScript 中 Array 数组对象的基本操作与应用 ... [详细]
author-avatar
vghoon
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有