top
Loading...
聊天室技術(六)--表情和動作

表情和動作極大的豐富了聊天的樂趣,一般的聊天室主要通過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

北斗有巢氏 有巢氏北斗