您现在的位置: 军旅同心 >> 读书赏析 >> 学习园地 >> 电脑网络 >> 技术文章 >> 文章正文
PHP设计聊天室步步通
作者:采集员 文章来源:来源于网络 点击数: 更新时间:2005-9-10 14:34:36
emote(this.options[this.selectedIndex].value)">
<option value="0" selected>动作</option>
<?
$emotemsg = file($emotefilename);
for($i=0;$i<count($emotemsg);$i++)
{
$msg = split($split,$emotemsg[$i],99);
print("<option value=$msg[0]>$msg[1]</option>");
}
?>
</select> 

  这样就完成了从菜单选动作表情的过程

  2 表情动作在发言处理程序里的处理过程

messagesend.php

<?

//读入表情动作文件
$emote3 = file($emotefilename);
$emote3number = count($emote3);
for($kk=0;$kk<$emote3number;$kk++)
{

//分割每个表情动作
$emote=split($split,chop($emote3[$kk]),99);

//如果发言内容等于表情动作
if($message == $emote[0])
{

//替换表情动作里面的 对象 为实际的聊天对象名字
$emote[1]=ereg_replace("对象","<font color=red>$talkto</font>",$emote[1]);

//发言内容改为动作表情的内容
$message = "<a href=javascript:parent.cs('$name') target=d>$name</a
>".$emote[1];
break;
}
}
?> 

  这样我们就实现了表情和动作,如果做一个自动添加动作表情的程序功能,更会增加聊天的娱乐性!

  帖图

  如果在聊天文字中能增加一些美丽的图片.......
  图片代码的生成和表情动作一样,可以菜单选择也可以手工输入,这里只给出格式和代码,不再解释,请察看 表情于动作部分

  1 文件格式

//$picturefilename

1$split咖啡色西服$splitxw20151.jpg$split
2$split黑色燕尾服$splitxw201534.jpg$split

  编号+名称+图片名称+

  2 程序

  我的聊天室采用 ///gift+编号的方法显示图片,注意是三个反斜杠,区别于表情动作

<?
//判断发言的内容最前面的7个字符是否是 ///gift
if(substr($message,0,7) == "///gift")
{

//取得图片的编号,从第7个字符开始的2个字符(注意,字符从0开始编号)
$id = substr($message,7,2)-1;

//读入图片文件
$giftmsg = file($picturefilename);

//判断是否编号合法
if(($id >= 0) && ($id < count($giftmsg)) )
{
//分割图片行
$gift=split($split,$giftmsg[$id],99);

//生成图片的发言内容
$message ="<a href=javascript:parent.cs('$name') target=d><font col
or=$namecolor>$name</font></a>送给<a href=javascript:parent.cs('$talkt
o') target=d>$talkto</a>一个$gift[1]<img src='images/$gift[2]' width=6
0 height=60 border=0></font>";

//图片生成成功标志
$specialsign = 1;
}

  密谈的实现

  每个聊天室都提供了密谈功能,来为那些需要私下里进行交流的聊友提供方便,这里把我的聊天室实现私聊的方法介绍如下:

  1 对发送信息的处理

  每句私聊都要显示在自己和私聊对象的屏幕上,而其他人不能够看到.这里先对发言内容进行处理,然后再保存到发言文件里面!

//$split为分隔符号

messagesend.php

<?
//判断是否私聊发言
if($secret == "on")
{
//在发言前面加上标记<!--+私聊标记+对象+发言者+--> 其中+代表分隔符

//第一个标记为 secret 表示为私聊,后面的是聊天对象和自己的名字,保证这两个人能看到
$message = "<!--$splitsecret$split$talkto$split$name$split--><font c
olor=ff0000>密谈</font>$message";
}
else
{

//如果第一个标记为 open 表示公开,后面同样为对象和自己的名字
$message = "<!--$splitopen$split$talkto$split$name$split-->$message"
;
}

//然后保存到文件中
?> 

  2 显示私聊的方法

  对每个新的发言读入后先进行处理判断,在主动刷新程序里面进行.

messageflush.php

<?
//分割发言内容
$tempmessage = split($split,$message[0],99);

//如果发言不是密谈,或者私聊对象是自己,或者发送这句私聊的是自己,那就显示这句话,否则不显示
if( ($tempmessage[1] != "secret") || ($tempmessage[2] == $name) || (
$tempmessage[3] == $name) )
{

//显示私聊
print("parent.u.document.writeln("$message[0]");rn");
}
?> 

  通过这种简单的方法,我们实现了私聊,

  注意:

  前面的保存文件处理时,对发言的判断文字前后有<!-- 和 -->这样在屏幕显示时就可以不用特殊处理了!

上一页  [1] [2] 


 
免责声明:作品版权归所属媒体与作者所有!!本站刊载此文不代表同意其说法或描述,仅为提供更多信息。如果您认为我们侵犯了您的版权,请告知!本站立即删除。有异议请联系我们。
文章录入:烟灰缸    责任编辑:烟灰缸 
  • 上一篇文章:
  • 下一篇文章:
  • 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 |