首页 > 编程知识 正文

php动态文字显示在线人数代码,php在线人数统计

时间:2023-12-28 21:11:08 阅读:329251 作者:PWFG

本文目录一览:

PHP中如何实现在线人数的统计和显示

要使用数据库,建立一个表,比如名字是online,至少有以下列:

name_ip 存放登录用户名,未登录的存放IP,char类型

url 存放每个页面的地址,char类型

last_time 存放刷新页面的最后时间,int类型

表的主键是:name_ip+url

每个页面一开始就要刷新这个表,使用的SQL是:

$name_ip='用户名或者IP';//你能搞定

$url=$_SERVER["PHP_SELF"];

$time=time();

$sql="replace delayed into online (name_ip,url,last_time) values ('$name_ip','$url',$time)";

mysql_query($sql);

获取某页面在线人数的查询是语句

$limit=time()-10*60;//10分钟内访问的认为在线,10分钟*60秒/分钟

$sql="select count(*) from online where url='$url' and last_time=$limit";

$res=mysql_query($sql);

list($online_count)=mysql_fetch_row($res);

mysql_free_result($res);

echo "本页面在线人数: $online_count";

求一个小功能的PHP代码?

define('需要跳转时人数的宏',10);

define('在线时间长'.5*60);//单位为秒

function 计算在线人数()

{

$inlinelist=在线人员列表;//结构为‘人’=》人名或者对象,’上线时间‘=》时间

$num=0;

$nowtime = time();

foreach($inlinelist as $oneuser)

{

if(($nowtime-$oneuser['上线时间'])在线时间长) $num++;

}

return $num;

}

$onlineNum=计算在线人数();//数据库或者文件中记录的在线人数,读取这个值

if(需要跳转时人数的宏=$onlineNum)

{

header("Location: ");

return;

}

echo '!--继续显示index.php中的内容--';

echo '当前在线'.$onlineNum.'人';

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

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

?php

//首先你要有读写文件的权限

//本程序可以直接运行,第一次报错,以后就可以

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

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

$entries = file($online_log);

$temp = array();

for ($i=0;$icount($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."人在线";

?

如何利用PHP会话显示出当前在线的用户

我的建议是用数据库保存记录,俱体做法如下:

1、新建一个用户在线表,也可以直接用户的数据表;

2、每次用户访问页面都会记录,访问位置,最后访问时间;

3、然后比如您要显示最后20分钟在线的人数就直查询:

$dat = time()-60*20;

$sql = "select ID,用户名,最后访问时间 from 用户 where 最后访问时间$dat"

注:

一般在线是指一段时间内的活动人数,这个时间你可以自己定。例子中是20分钟,你也可以设置成5分钟、一小时、甚至一天十天等都可以;

php在线人数问题

将首次刷新的数据存在cookie中,当cookie存在时取cookie不存在则赋值给cookie

具体代码

if(empty($_COOKIE['randNum'])){

$num = rand(100,999);

setcookie('randNum',$num,time()+60*30);

}

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。