php精确的统计在线人数的方法
这是一个非常精确的,通过php实现统计在线人数的方法,想知道怎么实现的请耐心阅读。
<?php $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;//初始化访问者ID do{//给用户一个新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.'");';
希望本文所述对大家学习php程序设计有所帮助。
相关推荐
-
php自定义函数实现统计中文字符串长度的方法小结
本文实例讲述了php自定义函数实现统计中文字符串长度的方法.分享给大家供大家参考,具体如下: 中文字符计算为2个字符 英文字符计算为1个 代码 /** * 可以统计中文字符串长度的函数 * */ function abslength($str) { $len=strlen($str); $i=0; while($i<$len) { if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str
-
php中3种方法统计字符串中每种字符的个数并排序
复制代码 代码如下: <?php //这个方法纯粹是背函数,不解释: function countStr($str){ $str_array=str_split($str); $str_array=array_count_values($str_array); arsort($str_array); return $str_array; } //以下是例子: $str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas";
-
PHP统计数值数组中出现频率最多的10个数字的方法
本文实例讲述了PHP统计数值数组中出现频率最多的10个数字的方法.分享给大家供大家参考.具体分析如下: 该问题属于TOPK范畴,统计单词出现频率,做报表,数据统计的时会常用! php代码如下: //随机生成数值数组 for($i=0;$i<1000;$i++){ $ary[]=rand(1,1000); } //统计数组中所有的值出现的次数 $ary=array_count_values($ary); arsort($ary);//倒序排序 $i=1; foreach($ary as $key=
-
PHP统计二维数组元素个数的方法
解决思路1. 首先从数据库的congtent字段读取数据,并把它们合并成一个字符串. 复制代码 代码如下: <?php while($myrow = $connector -> fetch_array($result)) { //$r[] = explode(",", $myrow["content"]); $str .= $myrow["content"].','; } $arr_str = substr($str, 0, -1
-
php统计数组元素个数的方法
count():对数组中的元素个数进行统计; sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数.可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0; array_count_value():统计每个特定的值在数组$array中出现过的次数; 如: $array=array(4,5,1,2,3,1,2,1); $ac=array_count_value($array); 将创建一个名为
-
PHP实现统计所有字符在字符串中出现次数的方法
本文实例讲述了PHP实现统计所有字符在字符串中出现次数的方法.分享给大家供大家参考,具体如下: 先来看看效果: 算法: 循环一次字符串(本例的$str),把出现过的字符串记录在一个数组(如本例的$strRecord)内,如果已经此记录函数已经有,则不记录: 在每个字符串时,拿来与记录数组的值进行比较(本例的$strRecord[]['key']),如果记录里的某个值和这个字符串一样,就记录次数+1(本例的$strRecord[]['count']); 当然,设置一个变量,默认为false(如本例
-
PHP 日,周,月点击排行统计
复制代码 代码如下: $now=time(); //当前时间 $StrUpdate = "Update $tbl_article set hits=hits+1"; if(date("d",$lasthittime)==date("d",$now)){//同一天 $StrUpdate = $StrUpdate.",dayhits = dayhits+1"; }else{ $StrUpdate = $StrUpdate.&quo
-
使用php统计字符串中中英文字符的个数
复制代码 代码如下: <?phpecho $str = "43fdf测试fdsfadaf43543543职工问防盗锁防盗锁5345gfdgd";preg_match_all("/[0-9]{1}/",$str,$arrNum);preg_match_all("/[a-zA-Z]{1}/",$str,$arrAl);preg_match_all("/([/x{4e00}-/x{9fa5}]){1}/u",$str,$arr
-
php简单统计字符串单词数量的方法
本文实例讲述了php简单统计字符串单词数量的方法.分享给大家供大家参考.具体实现方法如下: <?php function word_count($sentence){ $array = explode(" ", $sentence); return count($array); } $words = word_count("The is a group of words"); echo $words; ?> 希望本文所述对大家的php程序设计有所帮助.
-
php精确的统计在线人数的方法
这是一个非常精确的,通过php实现统计在线人数的方法,想知道怎么实现的请耐心阅读. <?php $filename='online.txt';//数据文件 $cookiename='VGOTCN_OnLineCount';//cookie名称 $onlinetime=600;//在线有效时间,单位:秒 (即600等于10分钟) $online=file($filename); //PHP file() 函数把整个文件读入一个数组中.与 file_get_contents() 类似,不同的是 fi
-
php简单统计在线人数的方法
本文实例讲述了php简单统计在线人数的方法.分享给大家供大家参考,具体如下: <?php //首先你要有读写文件的权限 //本程序可以直接运行,第一次报错,以缶涂梢? $online_log = "count.dat"; //保存人数的文件, $timeout = 30;//30秒内没动作者,认为掉线 $entries = file($online_log); $temp = array(); for ($i=0;$i<count($entries);$i++) { $en
-
jsp利用application统计在线人数的方法
本文实例讲述了jsp利用application统计在线人数的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+
-
PHP实现统计在线人数功能示例
本文实例讲述了PHP实现统计在线人数的方法.分享给大家供大家参考,具体如下: 我记得ASP里面统计在线人数用application 这个对象就可以了.PHP怎么设计? PHP对session对象的封装的很好,根据HTTP协议,每个范围网站的访客都可以生成一个唯一的标识符 echo session_id(); //6ed364143f076d136f404ed93c034201<br /> 这个就是统计在线人数的关键所在,只有有这个session_id 也就可以区分访问的人了.因为每一个人都不同
-
php实现统计网站在线人数的方法
本文实例讲述了php实现统计网站在线人数的方法.分享给大家供大家参考.具体实现方法如下: <?php function getIpAddress() { // 取得当前用户的IP地址 if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif (ge
-
Java实现统计在线人数功能的方法详解
目录 1. 监听器的简介 2. Java监听器的类型 (1)ServletContextListener (2)HttpSessionListener (3)ServletRequestListener (4)ServletContextAttributeListener (5)HttpSessionAttributeListener (6)ServletRequestAttributeListener (7)HttpSessionActivationListener 3.监听器Listener
-
PHP+jquery实时显示网站在线人数的方法
本文实例讲述了PHP+jquery实时显示网站在线人数的方法.分享给大家供大家参考.具体分析如下: 在线人数最简单的就是直接利用js调用php,这样可以显示出有多少人访问了本站,如果要在用户未刷新页面的状态实时显示用户在线人数,我们可以利用jquery ajax来实现. 我们在一些应用中需要动态展示数据,比如当前在线人数,当前交易总额,当前汇率等等,前端页面需要实时刷新获取最新数据.这里我们将结合实例给大家介绍使用jQuery和PHP来实现动态数字展示效果. 本例假设要在页面上动态展示(无需刷新
-
springboot 用监听器统计在线人数案例分析
本文在springboot 的项目,用HttpSessionListener 监听器(监听器的其中一种) 统计在线人数,实质是统计session 的数量. 思路很简单,但是有个细节没处理好,让我调试了大半天,才把bug搞好. 先写个HttpSessionListener 监听器.count 是session的数量(人数),session 创建的时候,会触发监听器的sessionCreated 方法,session销毁的时候,会触发监听器的sessionDestroyed 方法. 在监听器中计算
-
Spring boot通过HttpSessionListener监听器统计在线人数的实现代码
首先说下,这个统计在线人数有个缺陷,一个人在线可以同时拥有多个session,导致统计有一定的不准确行. 接下来,开始代码的编写, 第一步:实现HttpSessionListener中的方法,加上注解@WebListener @WebListener public class SessionListener implements HttpSessionListener{ public void sessionCreated(HttpSessionEvent arg0) { // TODO Aut
-
Javaweb监听器实例之统计在线人数
本文实例为大家分享了Javaweb统计在线人数示的具体代码,供大家参考,具体内容如下 1. 实现功能 统计在线人数 显示每个人的sessionId.Ip.第一次登录时间 2. 运用监听器种类 HttpSession ServletRequest 3. 实现思想 每一个用户对应着一个session,所以在每次session被创建时,num++: 实现一个用户类(sessionID.IP.Date) 获取IP地址的方法需要用request,所以我们要实现一个ServletRequest监听器 每一次
随机推荐
- Angular2仿照微信UI实现9张图片上传和预览的示例代码
- jQuery中:radio选择器用法实例
- IIS HTTP 错误 404.17 - Not Found 解决方法
- Android编程实现图片的浏览、缩放、拖动和自动居中效果
- .NET中的Timer类型用法详解
- Python判断直线和矩形是否相交的方法
- ASP常用函数:XMLEncode
- C++基于先序、中序遍历结果重建二叉树的方法
- Android自定义View详解
- 简单实现SQLServer转MYSQL的方法
- 256种编程语言大汇总
- 基于jQuery实现的Ajax 验证用户名是否存在的实现代码
- IE中用VBScript不提示直接打印的代码
- MySQL多层级结构-树搜索介绍
- 详解PHP执行定时任务的实现思路
- jquery 列表双向选择器之改进版
- Android 中TabLayout自定义选择背景滑块的实例代码
- Asp.net MVC 中利用jquery datatables 实现数据分页显示功能
- Win2008 r2 iis7/iis7.5系统下HTTP重定向(301重定向)图文方法
- Java的绘图模式使用浅析