<p> 下面我用读写文本文件的方式给大家简单介绍一下聊天室的制作。该聊天室一共有四个主要的PHP文件:</p><p> login.php用来登录</p><code><html><br /><body><br /><form action="chat.php"><br />房 间:<select name="room" ><br /> <option value="大厅">大厅</option><br /> <option value="客房">客房</option><br /> <option value="后院">后院</option><br /> </select><br />您的大名:<input type="text" name="name"><br /><input type=submit value="进入"><br /></form><br /></body><br /></html></code><p> chat.php为主文件</p><code><html><br /><head><br /><title>简易聊天室(作者:东方一蛇(http://phpinto.126.com))</title><br /></head><br /><frameset rows="80%,*" cols="*"><br /> <frame src="view.php?room=<?php echo $room; ?>"><br /> <frame src="input.php?name=<?php echo $name; ?>&room=<?php echo $room; ?>"><br /></frameset><br /><noframes><br /><body bgcolor="#cccccc"><br /></body></noframes><br /></html></code><p> view.php用来显示聊天</p><code><html><br /><meta http-equiv="Refresh" content="5; url=view.php?room=<?php echo $room; ?>"><br /><body bgcolor="#cccccc"><br /><?<br />switch ($room) {<br /> <br />case '大厅':<br /> <br />$write_file="1.txt";<br /> <br />break;<br /> <br />case '客房':<br /> <br />$write_file="2.txt";<br /> <br />break;<br /> <br />case '后院':<br /> <br />$write_file="3.txt";<br /> <br />break;<br /> <br />default:<br /> <br />$write_file="0.txt";<br /> <br />break;<br />}<br />$chat_lenght = 25;<br />$lines = file($write_file);<br />$a = count($lines);<br />$u = $a - $chat_lenght;<br />for($i = $a; $i >= $u ;$i--){<br /> <br />echo $lines[$i] . "<br>";<br /> <br />}<br />?><br /></body><br /></html></code><p> input.php用来输入聊天语句</p>
<p> </p>
<code><html><br /><head><br /><title>简易聊天室(作者:东方一蛇(http://phpinto.126.com))</title><br /></head><br /><body bgcolor="#cccccc" topalign=0><br /><?<br />#说明:为了避免重复,再加上我本人比较懒,以下所有注释我没有在该文件中说明,您可以在本人的网站上看(http://phpinto.126.com)<br /> <br /># 注释1<br />$name = str_replace ( "<", "<", $name);<br />$name = str_replace ( ">", ">", $name);<br />$name = stripslashes (trim($name));<br />?><br /><table border=0><br /><form action="input.php" method="post"><br /><tr><br /> <td><br />房间:<font color=blue><? echo $room; ?></font><br /><input type="hidden" name="room" value="<? echo $room; ?>"><br />大名: <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><br /></td><br /></tr><br /><tr><br /><td><br /><input type="hidden" name="name" value="<? echo $name; ?>"><br />内容: <input type="text" name="message" size=75><br /><input type="submit" value="确定"><br /></form><br /></td><br /></tr><br /><?<br />$t = date(d日H时i分); # 注释2<br />$talk = 100; # 注释3<br />$r = 25; # 注释4<br />switch ($room) {<br /> <br />case '大厅':<br /> <br />$write_file="1.txt";<br /> <br />break;<br /> <br />case '客房':<br /> <br />$write_file="2.txt";<br /> <br />break;<br /> <br />case '后院':<br /> <br />$write_file="3.txt";<br /> <br />break;<br /> <br />default:<br /> <br />$write_file="0.txt";<br /> <br />break;<br />}<br />$max_file_size = $r * ($talk+15); # 注释5<br />$file_size= filesize($chat_file);<br /> <br />if ($file_size > $max_file_size) {<br /> <br />$lines = file($write_file);<br /> <br />$tmp= count($lines);<br /> <br />$u = $tmp - $r;<br /> <br />for($i = $tmp; $i >= $u ;$i--)<br /> <br />{<br /> <br />$msg_old = $lines[$i] . $msg_old;<br /> <br />}<br /> <br />$deleted = unlink($write_file); # 注释6<br /> <br />$fp = fopen($write_file, "a+"); # 注释7<br /> <br />$fw = fwrite($fp, $msg_old);<br /> <br />fclose($fp);<br />}<br />$msg = str_replace ( "<br />", " ", $message);<br />$msg = str_replace ( "<", "<",$msg);<br />$msg = str_replace ( ">", ">",$msg);<br />$msg = stripslashes ($msg); <br />if ($msg != ""){<br /> <br />$fp = fopen($write_file, "a+");<br /> <br />$fw = fwrite($fp, "<br /><b>[$t]$name :</b> $msg"); # 注释8<br /> <br />fclose($fp);<br />}<br />?><br /></body><br /></html></code><p> 注释说明</p></p><p> 注释1:这里处理“<”和“>”符号,上面的显示可能有问题,您应该将第二个“<”(或“>”)变成“&”加上“lt”(或“gt”)</p><p> 注释2:函数date的用法请大家参考有关文档</p><p> 注释3:设定聊天语句最长值</p><p> 注释4:设定浏览器显示的聊天语句行数</p><p> 注释5:这里加上15是为了将聊天的时间长度加进去</p><p> 注释6:文件过长就删除,再新建立一个</p><p> 注释7:以写的方式打开一个文件,如果该文件不存在就建立一个</p><p> 注释8:将聊天时间,聊天人,语句写到文件中</p><p> 最后:大家可以将本聊天室进行改造,加入房间,新建房间等等</p></p>