首页 php教程 PHP源码 PHP如何统计在线人数

PHP如何统计在线人数

Jun 08, 2016 pm 05:33 PM
http mysql NOT null php

<script>ec(2);</script>
在论坛里有人问我如何统计在线人数?我也不知道什么是最好的方法。下面是本站的实现的原理,我把它写出来,供大家参考。这只是我的方法,肯定不是最好的,还希望高手们予以指正。

其实,要真正统计同时在并发在线的人数,是一件不太现实的事,这是因为HTTP协议是种无状态的协议。当客户端向服务器发出一个请求时,服务器会马上建立一个新的TCP/IP连接,在该会话结束后,如页面完全载入后,这个连接就关闭了。一般来说,在线人数指的定是在一定时间段内同时访问站点的人数,而不是基于HTTP协议的并发连接数。
 
让我们先来看看一个访客是如何访问一个网站的。他在浏览器的地址栏里输入了目标网站的地址,然后在一段时间内持续浏览该网站的网页,最后,关闭浏览器或输入新的网址——浏览结束了。对于服务器端来说,访客到来是可以知道的,访客在浏览页面也是可以知道的,可是怎么知道什么时候走的呢?由于HTTP协议是无状态的,所以无法知道。通常的做法是记下访客最后一次浏览站点页面的时间。如果该访客在一个特定的时间内没有新的动作,那么可以认为他走了。
 
根据上面的这个思路,我觉得最好用数据库,因为数据库要比其他方法如文本文件的效率要高。下面的例子是使用MySQL的,很容易使用其他类型的数据库系统。然后,在所有的页面中调用这个PHP文件,一方面更新数据,另一方面可以显示在线的人数。但是,有一个问题--到底在多长时间内访问的人算是并发的呢?一般来说,是半个小时,也就是1800秒,具体的要根据网站的情况来确定。这个时间越长,统计出的并发在线的人数就越多。本站的是15分钟,900秒。用访问者的IP地址表示一个访问者是个不错的方法。在拨号上网的情况下,被分配了相同IP地址的两个用户在短时间内浏览同一个网站的概率是很小的。
 
首先,用MySQL的工具建一个表:
CREATE TABLE ccol(
id integer not null auto_increment, #记录的ID
ip char(15) not null, #访问者的IP地址
dtstamp datetime not null, #最后访问时间
uri char(255), #访问者请求的URI
primary key (id)
);
然后,写一段PHP代码:

/*
文件:ccol.php - ConCurrent OnLine statistics
目的:统计同时在线浏览的人数
作者:Hunte, hunte@phpuser.com
修改:2000-4-25
*/
$duration=1800;
require "db.php";
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1677
14
CakePHP 教程
1431
52
Laravel 教程
1334
25
PHP教程
1280
29
C# 教程
1257
24
MySQL与PhpMyAdmin:了解关键差异 MySQL与PhpMyAdmin:了解关键差异 May 06, 2025 am 12:17 AM

MySQL是数据库管理系统,phpMyAdmin是管理MySQL的Web工具。1.MySQL用于存储和管理数据,支持SQL操作。2.phpMyAdmin提供图形界面,简化数据库管理。

PHP性能优化策略。 PHP性能优化策略。 May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

Navicat和Mysql:完美的合作伙伴关系 Navicat和Mysql:完美的合作伙伴关系 May 05, 2025 am 12:09 AM

Navicat和MySQL是绝配,因为它们能提高数据库管理和开发效率。1.Navicat简化了MySQL的操作,通过图形界面和自动生成SQL语句提升工作效率。2.Navicat支持多种连接方式,方便本地和远程管理。3.它提供了强大的数据迁移和同步功能,适合高级用法。4.Navicat有助于性能优化和最佳实践,如定期备份和查询优化。

MySQL与Oracle:许可,功能和福利 MySQL与Oracle:许可,功能和福利 May 08, 2025 am 12:05 AM

MySQL和Oracle的主要区别在于许可证、功能和优势。1.许可证:MySQL提供GPL许可证,免费使用,Oracle采用专有许可证,价格昂贵。2.功能:MySQL功能简单,适合Web应用和中小型企业,Oracle功能强大,适合大规模数据和复杂业务。3.优势:MySQL开源免费,适合初创公司,Oracle性能可靠,适合大型企业。

MySQL:SQL的实际应用 MySQL:SQL的实际应用 May 08, 2025 am 12:12 AM

MySQL受欢迎的原因是其性能卓越且易于使用和维护。1.创建数据库和表:使用CREATEDATABASE和CREATETABLE命令。2.插入和查询数据:通过INSERTINTO和SELECT语句操作数据。3.优化查询:使用索引和EXPLAIN语句提升性能。

PHP中依赖注入的最佳实践 PHP中依赖注入的最佳实践 May 08, 2025 am 12:21 AM

使用依赖注入(DI)的原因是它促进了代码的松耦合、可测试性和可维护性。1)使用构造函数注入依赖,2)避免使用服务定位器,3)利用依赖注入容器管理依赖,4)通过注入依赖提高测试性,5)避免过度注入依赖,6)考虑DI对性能的影响。

phpmyadmin的功能:与MySQL(SQL)互动 phpmyadmin的功能:与MySQL(SQL)互动 May 07, 2025 am 12:16 AM

phpMyAdmin通过Web界面简化MySQL数据库管理。1)创建数据库和表:使用图形界面轻松操作。2)执行复杂查询:如JOIN查询,通过SQL编辑器实现。3)优化和最佳实践:包括SQL查询优化、索引管理和数据备份。

PHP性能优化清单:立即提高速度 PHP性能优化清单:立即提高速度 May 12, 2025 am 12:07 AM

到ImprovephPapplicationspeed,关注台词:1)启用opcodeCachingwithapCutoredUcescriptexecutiontime.2)实现databasequerycachingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandredececonnection.4 limitsclection.4.4

See all articles