PHP 简易聊天室实例(读写文本文件的方式)

下面我用读写文本文件的方式给大家简单介绍一下聊天室的制作。该聊天室一共有四个主要的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>

chat.php为主文件

<html>
<head>
<title>简易聊天室(作者:东方一蛇(http://phpinto.126.com))</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>


  view.php用来显示聊天

<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>

  input.php用来输入聊天语句

<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:greenchn@163.net">东方一蛇</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_size= filesize($chat_file);
     
if ($file_size > $max_file_size) {
 
$lines = file($write_file);
 
$tmp= count($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 ( "
", " ", $message);
$msg = str_replace ( "<", "<",$msg);
$msg = str_replace ( ">", ">",$msg);
$msg = stripslashes ($msg);    
if ($msg != ""){
 
$fp = fopen($write_file, "a+");
 
$fw = fwrite($fp, "
<b>[$t]$name :</b> $msg");   # 注释8
 
fclose($fp);
}
?>
</body>
</html>

注释说明

  注释1:这里处理“<”和“>”符号,上面的显示可能有问题,您应该将第二个“<”(或“>”)变成“&”加上“lt”(或“gt”)

  注释2:函数date的用法请大家参考有关文档

  注释3:设定聊天语句最长值

  注释4:设定浏览器显示的聊天语句行数

  注释5:这里加上15是为了将聊天的时间长度加进去

  注释6:文件过长就删除,再新建立一个

  注释7:以写的方式打开一个文件,如果该文件不存在就建立一个

  注释8:将聊天时间,聊天人,语句写到文件中

  最后:大家可以将本聊天室进行改造,加入房间,新建房间等等


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值