当前位置:首页 » 编程语言 » php统计人数

php统计人数

发布时间: 2022-08-08 08:55:36

A. 怎么用php写个在线访问人数统计

你所说的“其中一个人关闭了网站”是一个很明显的错误,网站的来访者所关闭的不是“网站”,只是他自己的浏览器。
从 Web 服务的机制上来说,服务器只是接收到对某个网页的请求后把相应的 HTML 格式的内容(可能包括 JavaScript程序)发送给请求者以后就关闭连接,至于浏览器端的用户是什么时候关闭浏览器(或者说是转移去查看别的网站的网页去了)服务器端是得不到任何信息的。
PHP、ASP、JSP 之类的网页访问只是服务器在发送 HTML 格式的内容之前需要先执行一下相应的文件里的程序,得到 HTML 格式的内容之后再发送而已,原理上还是发送完就关闭与请求者的连接。
服务器能得到的信息是接收来访者发来的网页请求信息的时候随同而来的IP地址,至于这个IP地址对应的用户什么时候跳转去看别的网站的网页去了服务器得不到任何信息。在你的 PHP 程序中,可以把得到一个来访者的IP地址的时候就给作为一个累加器用的跨网页文件跨不同来访者共享的变量添加1,20分钟之内没再接收到那个IP地址发来的请求就将累加器减1,这样,你把那个累加器内容显示出来就能反映你的网站在最近20分钟内有多少个IP来访问过,这个数就近似地反映了你的网站“在线人数”。

B. php中如何实现统计浏览人数~不能重复刷新

用cookies记住客户端对应的session ID,并且给session设置生命周期,确保唯一性,接下来就可以做判断了,是否已经访问过。

C. 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_arras$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)."人在线";

D. PHP中如何使用一维数组统计各分数段的学生人数

很简单,数组遍历一遍。遍历的同时,进行if判定>90,n1++,else 大于80 n2+最后输出n1,n2,n3,n4...

E. php如何统计 不同角色的人数

通常这种如果三种角色的信息都是放在一张表里的话,
是通过一个字段来区分的,
像加个 role 字段,
1代表管理员, 2代表教师, 3代表学生
然后管理页面,想取管理员就 where role = 1,
大概就这样,
统计人数就直接,
select role,count(*) as count from table group by role;
会查出每一种角色对应的人数总数,
以上,

F. php如何实现分别统计网站的在线人数(如管理员,游客,会员),越详越好!

实现刷新在线用户列表,思路建立一个Session临时表 每次用户登陆就写入用户的 ID 级别 临时时间 等 重点在临时时间的字段数据,写入之后用户每次刷新页面或者打开新页面就更新Session表里的用户数据 步骤是先删除5分钟之内没有操作的用户,利用临时时间字段来判断 删除后剩下的就是在线的用户,很简单, 总体就是 记录 更新 删除 获取PS:这个超时时间你可以根据自己网站的情况设置

G. 怎么用php计算当前在线人数

计算当前在线人数--用文本实现

<?php
//首先你要有读写文件的权限
//本程序可以直接运行,第一次报错,以后就可以

$online_log = "count.dat"; //保存人数的文件,

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

$entries = file($online_log);

$temp = array();

for ($i=0;$i<count($entries);$i++) {

$entry = explode(",",trim($entries[$i]));

if (($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time())) {

array_push($temp,$entry[0].",".$entry[1]."\n"); //取出其他浏览者的信息,并去掉超时者,保存进$temp

}

}

array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."\n"); //更新浏览者的时间

$users_online = count($temp); //计算在线人数

$entries = implode("",$temp);

//写入文件

$fp = fopen($online_log,"w");

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

fputs($fp,$entries);

flock($fp,LOCK_UN);

fclose($fp);

echo "当前有".$users_online."人在线";

?>

H. PHP中统计各分数段的学生人数

foreach
switch

I. 如何用PHP+MYsql 统计在线人数

在你页面的session 处理中,退出机制中处理,

J. 我想用php制作一个在线聊天室,怎么统计在线人数啊

根据会话数来统计在线人数.
一般是这样的,在数据库中记录每个用户的会员数据,并且用户的每一次动作都update他的最后动作时间.那么统计在线人数就是统计某段时间内有动作的用户即可.一般5分钟或者10分钟.
上面是靠用户自己的操作来更新在线时间的.你也可以在用户停留的页面弄个JS,隔个2分钟就做个ajax请求,自动更新用户的最后的在线时间,
ps 如果你不想修改session存到mysql,memcached等里面,则可以根据session_id()来获取PHPSESSID来作为身份标识,
然后要在程序中写上随机删除过期很久了的会话.

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

热点内容
新名图配置怎么样 发布:2024-05-19 09:31:30 浏览:94
php获取子节点 发布:2024-05-19 09:21:18 浏览:160
php生成html 发布:2024-05-19 09:20:24 浏览:795
keil编译步骤 发布:2024-05-19 08:58:12 浏览:702
ipad有哪些好用的c语言编译器 发布:2024-05-19 08:41:56 浏览:767
征途手游版脚本 发布:2024-05-19 08:38:11 浏览:165
安卓咪咕音乐怎么录制视频 发布:2024-05-19 07:56:06 浏览:838
如何搞出超大声的听声辨位安卓版 发布:2024-05-19 07:46:21 浏览:927
linux安全模式 发布:2024-05-19 07:27:25 浏览:176
为什么安卓手机安装不了cpk 发布:2024-05-19 07:22:21 浏览:313