<select onchange="changemote(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='http://www.jb51.net/article/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"); } ?> 通过这种简单的方法,我们实现了私聊, 注意: 前面的保存文件处理时,对发言的判断文字前后有<!-- 和 -->这样在屏幕显示时就可以不用特殊处理了!
(编辑:焦作站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|