简易聊天室
 
  聊天室的制作

  下面我用读写文本文件的方式给大家简单介绍一下聊天室的制作,我在主页上也放置了一个,大家可以去聊天看看效果,该聊天室一共有四个主要的PHP文件

  login.php用来登录

 
 <html>
 <body>
 <form action="chat.php">
 房  间:<select name="room" >
            <option value="大厅">大厅</option>
            <option value="客房">客房</option>
            <option value="后院">后院</option>
         </select>
 
 您的大名:<input type="text" name="name">
 <input type=submit value="进入">
 </form>
 </body>
 </html>
  <html>
 <head>
 <title>简易聊天室</title>
 </head>
 
 <frameset rows="80%,*" cols="*"> 
   <frame src="view.php?room=<?php echo $room?>">
   <frame src="input.php?name=<?php echo $name?>&room=<?php echo $room?>"> 
 </frameset>
 <noframes>
 <body bgcolor="#cccccc">
 </body></noframes>
 </html>
  <html>
 <meta http-equiv="Refresh" content="5; url=view.php?room=<?php echo $room?>">
 <body bgcolor="#cccccc"> 
 <?
 
switch ($room) {
   case 
'大厅':
         
$write_file="1.txt";
         break;
   case 
'客房':
         
$write_file="2.txt";
         break;
   case 
'后院':
         
$write_file="3.txt";
         break;
   default:
         
$write_file="0.txt";
         break;
 }
 
$chat_lenght 25
 
$lines file($write_file); 
 
$a count($lines); 
 
 
$u $a $chat_lenght
 
 for(
$i $a$i >= $u ;$i--){ 
         echo 
$lines[$i] .  "<br>"
     } 
 
 
?>
 </body>
 </html>
  <html> 
 <head> 
 <title>简易聊天室(作者:东方一蛇(http://phpinto.126.com))</title> 
 </head> 
 
 <body bgcolor="#cccccc" topalign=0> 
 <? 
 
#说明:为了避免重复,再加上我本人比较懒,以下所有注释我没有在该文件中说明,您可以在本人的网站上看(http://phpinto.126.com)
                                              # 注释1 
 
$name str_replace "<",  "<"$name); 
 
$name str_replace ">",  ">"$name); 
 
$name stripslashes (trim($name)); 
 
?> 
 <table border=0>
 <form action="input.php" method="post"> 
 <tr>
   <td>
 房间:<font color=blue><? echo $room?></font>
 <input type="hidden" name="room" value="<? echo $room?>">
 大名: <font color=blue><? echo $name?></font><font style="font-size:9pt;color=color:#cccccc">           有任何问题或建议请去<a href="http://phpinto.126.com" target=home>主页</a>联系<a href="mailto:[email protected]">东方一蛇</a></font><br> 
 </td>
 </tr>
 <tr>
 <td>
 <input type="hidden" name="name" value="<? echo $name?>">
 内容: <input type="text" name="message" size=75> 
 <input type="submit" value="确定"> 
 </form> 
 </td>
 </tr>
 
 
 <? 
 $t 
date(d日H时i分);                        # 注释2 
 
$talk 100;                                 # 注释3  
 
$r 25;                                     # 注释4 
 
 
 
switch ($room) {
   case 
'大厅':
         
$write_file="1.txt";
         break;
   case 
'客房':
         
$write_file="2.txt";
         break;
   case 
'后院':
         
$write_file="3.txt";
         break;
   default:
         
$write_file="0.txt";
         break;
 }
 
 
$max_file_size $r * ($talk+15);             # 注释5 
 
$file_sizefilesize($chat_file); 
           
 if (
$file_size $max_file_size) { 
 
     
$lines file($write_file); 
     
$tmpcount($lines); 
 
     
$u $tmp $r
     for(
$i $tmp$i >= $u ;$i--)
           { 
            
$msg_old =  $lines[$i] . $msg_old
           } 
     
$deleted unlink($write_file);       # 注释6
 
     
$fp fopen($write_file,  "a+");      # 注释7 
     
$fw fwrite($fp$msg_old); 
     
fclose($fp); 
 } 
 
 
$msg str_replace "\n"" "$message); 
 
$msg str_replace "<""<",$msg); 
 
$msg str_replace ">"">",$msg); 
 
$msg stripslashes ($msg);         
 
 if (
$msg !=  ""){ 
     
$fp fopen($write_file,  "a+"); 
 
     
$fw fwrite($fp,  "\n<b>[$t]$name :</b> $msg");      # 注释8 
     
fclose($fp); 
 } 
 
?> 
 </body> 
 </html>
 注释说明

注释1:这里处理“<”和“>”符号,上面的显示可能有问题,您应该将第二个“<”(或“>”)变成“&”加上“lt”(或“gt”)
注释2:函数date的用法请大家参考有关文档
注释3:设定聊天语句最长值
注释4:设定浏览器显示的聊天语句行数
注释5:这里加上15是为了将聊天的时间长度加进去
注释6:文件过长就删除,再新建立一个
注释7:以写的方式打开一个文件,如果该文件不存在就建立一个
注释8:将聊天时间,聊天人,语句写到文件中
最后:大家可以将本聊天室进行改造,加入房间,新建房间等等