PHP设计聊天室步步通(四)
发布:smiling 来源: PHP粉丝网 添加日期:2013-11-16 21:51:05 浏览: 评论:0
3、调用信息发送程序,发布聊天者已经进入的信息
- <script>
- parent.bl.document.open();
- parent.bl.document.write("<meta http-equiv='refresh' content='0;url=messagesend.php?name=<? print($name); ?>&&action=enter&&pass=<? print($pass); ?>'>")
- parent.bl.document.close();
- </script>
发言由messagesend.php处理完成,注意输出对象为bl,也就是处理发言的框架名称,这样保证发言框架的页面内容的完整
表情和动作
表情和动作极大的丰富了聊天的乐趣,一般的聊天室主要通过2种方法发送
(1) 按钮菜单的方法
通过在一个固定的下拉菜单里面进行选择,找到自己满意的表情,然后选中,按发送按钮发出
(2) 通过手工输入代号
比如网易的以手工输入 //hello 代表欢迎的一段动作,以 //bye 代表再见的一段动作表情
我们这里介绍菜单的具体实现方法,手工输入的不用介绍了吧! 哈哈!除非你记不住那些...
1 ,下拉菜单选择表情动作的实现
为了扩充方便,我们制作了表情动作的数据文件,这样在以后扩充时将会非常方便.
表情动作文件的格式如下($split代表分割符):
//1234$split“1234567,我的朋友在哪里1234!!!!!”
//$split很疑惑的看着对象...
//$split抓呀抓,把头皮都抓破了,也没有想出个所以然来。
//$split怎么回事?这到底是怎么回事
前面的//1234代表表情动作代码,分隔符后面的代表显示的表情动作注意其中的 对象 两个字将会在显示时替换成为发言对象的名字
这段代码用于把菜单选择的对应的表情动作代码写到发送栏里面
- <script>
- function changemote($newemote)
- {
- document.inputform.msg.value = $newemote
- }
- </script>
这段代码生成动态下来菜单
- <select name="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='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");
- }
- ?>
通过这种简单的方法,我们实现了私聊,
注意:
前面的保存文件处理时,对发言的判断文字前后有<!-- 和 -->这样在屏幕显示时就可以不用特殊处理了!
Tags: PHP 设计 聊天室
- 上一篇:PHP设计聊天室步步通(三)
- 下一篇:php注册页面代码(mysql+php)
相关文章
- ·PHP+TEXT留言本(一)(2013-11-11)
- ·PHP+TEXT留言本(二)(2013-11-11)
- ·PHP+TEXT留言本(三)(2013-11-11)
- ·PHP+TEXT留言本(四)(2013-11-11)
- ·PHP+TEXT留言本(五)(2013-11-11)
- ·PHP+TEXT留言本(六)(2013-11-11)
- ·PHP+MYSQL留言本(一)(2013-11-16)
- ·PHP+MYSQL留言本(二)(2013-11-16)
- ·PHP+MYSQL留言本(三)(2013-11-16)
- ·PHP设计聊天室步步通(一)(2013-11-16)
- ·PHP设计聊天室步步通(二) (2013-11-16)
- ·PHP设计聊天室步步通(三) (2013-11-16)
- ·php注册页面代码(mysql+php)(2013-12-11)
- ·php 用户注册页面代码(2013-12-11)
- ·php写的网页计数器代码(2013-12-11)
- ·php登录代码(2013-12-16)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)