繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> PHP基础 >> 聊天室技术(三) -- 在线人数

聊天室技术(三) -- 在线人数

2005-01-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:我根据网易聊天室的在线人数的方法,显示当前的在线人数,代码解释如下: 1 登陆时建立在线人名单的数组,放在body后面 2显示在线人数的js document.writeln('[在线人数'+count+']'); document.writeln("[所有人]")...

我根据网易聊天室的在线人数的方法,显示当前的在线人数,代码解释如下:

1 登陆时建立在线人名单的数组,放在body后面

//锁定在线人数文件

while(file_exists($useronlinelock)){$pppp++;}

fclose(fopen($useronlinelock,"w"));

//读入在线人名单

$useronline = file($useronline);

unlink($useronlinelock);

//建立数组 list

print("document.writeln("list=new Array(");

$k=count($useronline);

if($k>1)

{

for($i=0;$i<($k-1);$i++)

{

$usercurrent = split($split,$useronline[$i],99);

// 姓名+,

print("'$usercurrent[0]',");

}

$i=$k-1;

// 处理最后一个姓名

$usercurrent = split($split,$useronline[$i],99);

print("'$usercurrent[0]'");

}

// 数组结束

print(")");n");

?>

2显示在线人数的js

document.writeln('[在线人数'+count+']
');

document.writeln("[所有人

a>]
");

document.writeln("");

var j,name,club;

for(var i=0;i

{

if(list[i]!=null){

//显示每个在线人的名字

document.writeln("

e='"+list[i]+"'>"+list[i]+"
");

}

}

this.r.document.writeln('


');

3改变聊天对象

function cs(name)

{

if(this.d.document==null)return;

if(name=='所有人')

{

this.d.add('所有人');

this.d.document.inputform.talkto.value='所有人';

//改变焦点

this.d.document.inputform.msg.focus();

return;

}

for(var i=0;i

{

if(list[i]==name)

{

//更改发送的谈话对象

this.d.document.inputform.talkto.value=list[i];

this.d.document.inputform.msg.focus();

return;

}

}

//错误

alert('此用户已离线或已改了昵称。');

}

4删除一个用户

function del(str)

{

for(var i=0;i

if(list[i]==str)

{

delete list[i];

count--;

}

}

5增加一个用户

function add(str1,str2)

{

var l=list.length;

for(var i=0;i

//如果已经在数组里面则返回

if(list[i]==str1)

return;

//增加一个用户

list[l]=str1;

count++;

}

6更新聊天人数的方法,定时器的使用

var timerID=null;

var timerRunning=false;

function stop()

{

//停止

if(timerRunning)clearTimeout(timerID);

timerRunning=false;

}

function start()

{

stop();

//调用更新在线人数的程序

write1();

}

function write1()

{

... ... ... ...

//设定更新时间,

timerID=setTimeout("start()",30000);

timerRunning=true;

}

这种方法比较简单的实现了在线人数的显示,当然也可以使用读入在线人文件的方法显示在线人数,不过在改变聊天对象是会比较麻烦.

原作者:howtodo

来源:PHP2000.com

责任编辑:admin
相关文章