利用php比较精确的统计在线人数的办法,注意这里所说的精确是指个数,如果需要精确在时间上,则需要根据实际情况调整代码中的有效时间。(自己没有写,从别人那拿过来的,先放着然后再研究)

<?php//author:www.scutephp.com$filename='online.txt';//数据文件$cookiename='VGOTCN_OnLineCount';//cookie名称$onlinetime=600;//在线有效时间,单位:秒 (即600等于10分钟)

$online=file($filename);//PHP file() 函数把整个文件读入一个数组中。与 file_get_contents() 类似,不同的是 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败,则返回 false$nowtime=$_SERVER['REQUEST_TIME'];$nowonline=array();//得到仍然有效的数据foreach($online as $line){$row=explode('|',$line);$sesstime=trim($row[1]);if(($nowtime - $sesstime)<=$onlinetime){//如果仍在有效时间内,则数据继续保存,否则被放弃不再统计$nowonline[$row[0]]=$sesstime;//获取在线列表到数组,会话ID为键名,最后通信时间为键值}}/*@创建访问者通信状态使用cookie通信COOKIE 将在关闭浏览器时失效,但如果不关闭浏览器,此 COOKIE 将一直有效,直到程序设置的在线时间超时*/if(isset($_COOKIE[$cookiename])){//如果有COOKIE即并非初次访问则不添加人数并更新通信时间$uid=$_COOKIE[$cookiename];}else{//如果没有COOKIE即是初次访问$vid=0;//初始化访问者IDdo{//给用户一个新ID$vid++;$uid='U'.$vid;}while(array_key_exists($uid,$nowonline));setcookie($cookiename,$uid);}$nowonline[$uid]=$nowtime;//更新现在的时间状态//统计现在在线人数$total_online=count($nowonline);//写入数据if($fp=@fopen($filename,'w')){if(flock($fp,LOCK_EX)){rewind($fp);foreach($nowonline as $fuid=>$ftime){$fline=$fuid.'|'.$ftime."\n";@fputs($fp,$fline);}flock($fp,LOCK_UN);fclose($fp);}}echo 'document.write("'.$total_online.'");';

转载于:https://www.cnblogs.com/-lin/p/6129146.html

利用php比较精确的统计在线人数的办法相关推荐

  1. php自动计数,PHP 实现精确统计在线人数功能

    有需要学习交流的友人请加入交流群的咱们一起,有问题一起交流,一起进步!前提是你是学技术的.感谢阅读! PHP对session对象的封装的很好,根据HTTP协议,每个范围网站的访客都可以生成一个唯一的标 ...

  2. PHP 实现精确统计在线人数功能

    PHP对session对象的封装的很好,根据HTTP协议,每个范围网站的访客都可以生成一个唯一的标识符 这个就是统计在线人数的关键所在,只有有这个session_id 也就可以区分访问的人了.因为每一 ...

  3. PHP实现精确统计在线人数功能

    PHP对session对象的封装的很好,根据HTTP协议,每个范围网站的访客都可以生成一个唯一的标识符 1 2 echo session_id(); //6ed364143f076d136f404ed ...

  4. java程序利用HttpSessionListener实现统计在线人数(示例代码)

    HttpSessionListener是个session监听器,它有两个方法:publicvoidsessionCreated(HttpSessionEventevent){}和publicvoids ...

  5. html页面统计在线人数,统计在线人数couter

    如何运用内置对象session和application对象实现统计在线人数 首先创建一个全局应用程序类Global.asax   protected void Application_Start 这几 ...

  6. 统计在线人数、每日访问人数和总人数

    统计在线人数.每日访问人数和总人数 这个程序难一点,特点在于,因为他是分别的传送每个图片,所以不像CGI产生的图片那样大.而且图片可以重复的利用所以较率高速度快.只是没有JavaScript就不行了. ...

  7. Java如何实现统计在线人数的功能?

    很多人在笔试或者面试中问到:现在要你实现一个统计在线人数的功能,你该怎么设计? 不知道的朋友,这篇文章告诉你. 先说答案:可以利用监听器Listener来实现 目录 1. 监听器的简介 2. Java ...

  8. Excel:Excel使用技巧经验总结之(利用Excel自带功能统计各个字段不同类别及其个数并进行图表可视化+非编程实现)图文教程之详细攻略

    Excel:Excel使用技巧经验总结之(利用Excel自带功能统计各个字段不同类别及其个数并进行图表可视化+非编程实现)图文教程之详细攻略 目录 利用Excel自带筛选功能统计各个字段不同类别及其个 ...

  9. session监听器统计在线人数存入数值后不能取出其值

    session监听器统计在线人数存入数值后不能取出其值 首先这是一个在线统计人数的需求,给大家看看我的代码 监听器的类: import javax.servlet.annotation.WebList ...

最新文章

  1. MySql按日期进行统计(前一天、本周、某一天)[转载]
  2. Lifting Transformer: 基于跨步卷积Transformer的高效三维人体姿态估计
  3. Linux内核高端内存
  4. 一文学会设置 Jupyter 主题与目录
  5. 若川知乎问答:2年前端经验,做的项目没什么技术含量,怎么办?
  6. 【转发】响应式Web设计?怎样进行?
  7. 网页中嵌入JavaScript+事件触发程序
  8. ElasticSearch外部版本控制
  9. 数据结构与算法之单链表
  10. Go Web开发之Revel - 返回值
  11. 临近毕业,查降重来了
  12. stm32万年历流程图_基于 STM32 RTC的万年历
  13. windows复制文件命令Xcopy
  14. android 小球移动,android studio滑动小球移动
  15. apache如何支持php,apache支持php吗
  16. 火水风四种元素平衡 ABCD四个相等
  17. 微信公众号分享配置无效。。分享出来的只是纯链接了,如何自定义微信公众号的分享
  18. php jws 数据签名,JSON Web Signature 规范解析
  19. 计算机之网络基础 7层网络模型总结
  20. python 标准输入设备,实时获取MIDI设备的输入(Python)

热门文章

  1. 线程安全的单例模式的几种实现方法分享
  2. Android LayoutInflater详解
  3. 《超越想象——Windows_8应用设计与开发》
  4. Expression: _CrtIsValidHeapPointer(pUserData)
  5. monkeyrunner环境配置
  6. Android_设备隐私获取,忽略6.0权限管理
  7. 2011年排名前七位的Linux操作系统。
  8. EditText / This text field does not specify an inputType or a hint
  9. Linux添加/删除用户和用户组
  10. 【转】VS2008制作打包程序将安装路径写入注册表