
 
 | 
| 技术资料  > PHP技术 > 入门教程 : 聊天室技术(六)-- 表情和动作 |  
聊天室技术(六)-- 表情和动作 March 25,2004 |  
表情和动作极大的丰富了聊天的乐趣,一般的聊天室主要通过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;  
        }  
    }  
?>  
 
这样我们就实现了表情和动作,如果做一个自动添加动作表情的程序功能,更会增加聊天的娱乐性!   
 
原作者:howtodo   
来源:php2000.com    
         |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved