仿iPad界面的在线群聊
span style=color:#E53333;web在线群聊(iPad界面) 源码全部在ichat.zip压缩包里/span br / 主要包括三个文件: br / span style=color:#E53333;index.php/span:表单值获取昵称文件,传值给 span style=color:#E53333;c
web在线群聊(iPad界面) 源码全部在ichat.zip压缩包里
主要包括三个文件:
index.php:表单值获取昵称文件,传值给 chat.php文件;
chat .php :主要文件,获取index.php的传值后,判断是否填写昵称,空则为游客,本页包含聊天内容输入文本框,提交给本页面处理,将聊天记录保存在自动创建的chat.txt文件中,使用iframe调用view.php来显示聊天内容;
view .php : 按行读取chat.txt文件的内容,逆序输出,每间隔20s自动刷新
待改进方面:(本人新手,正在学习中)
1.防刷新机制
2.读取内容应该用ajax
演示地址:http://qhbbs.tk/
主要包括三个文件:
index.php:表单值获取昵称文件,传值给 chat.php文件;
chat .php :主要文件,获取index.php的传值后,判断是否填写昵称,空则为游客,本页包含聊天内容输入文本框,提交给本页面处理,将聊天记录保存在自动创建的chat.txt文件中,使用iframe调用view.php来显示聊天内容;
view .php : 按行读取chat.txt文件的内容,逆序输出,每间隔20s自动刷新
待改进方面:(本人新手,正在学习中)
1.防刷新机制
2.读取内容应该用ajax
演示地址:http://qhbbs.tk/
<?php /*创建会话,判断是否填写昵称,没有则为游客*/ session_start(); if(isset($_SESSION['views'])) $_SESSION['views']=$_SESSION['views']+1; else $_SESSION['views']=1; if($_SESSION['views']==1)$_SESSION['username']=$_POST['user']; if(!$_SESSION['username'])$_SESSION['username']="游客"; if($_POST['user'])$_SESSION['username']=$_POST['user']; $user=$_SESSION['username']; $words=$_POST['words'];//聊天内容赋值 if(empty($words))exit; savechat($words,$_SESSION['username']);//保存聊天内容 /*以下为保存聊天内容函数*/ function savechat($msg, $user) { $date=date('H:i:s',time()); $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT']; if (!$fp=fopen("$DOCUMENT_ROOT/chat.txt",'a+')) { die('创建聊天记录文件失败, 请检查是否有权限.'); } $msg = htmlspecialchars($msg); $msg = preg_replace('/([httpftp:\/\/])*([a-zA-])+\.([a-zA-Z0-9_-])+\.([a-zA-Z0-9_-])+(a-zA-Z0-9_)*/', '<a href=\\0 target=_blank>\\0</a>', $msg); $msg = preg_replace('/([a-zA-Z0-9_\.])+@([a-zA-Z0-9-])+\.([a-zA-Z0-9-]{2,4})+/', '<a href=mailto:\\0>\\0</a>', $msg); $msg ='['.$date.']'."\t".$user.":".$msg."\n"; if (!fwrite($fp, $msg)) { die('写入聊天记录失败.'); } fclose($fp); } ?>
4. [代码]view.php文件 跳至 [3] [4] [全屏预览]
<?php $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT']; $fp=fopen("$DOCUMENT_ROOT/chat.txt",'a+'); if(!$fp){ echo "<p><strong>Didn't write chat log in chat.txt.Please try say again.</strong></p>"; exit; } $handle=$fp; $temp_arr=array(); do { $file=fgets($handle,1024); $temp_arr[]=$file; } while(!feof($handle)); fclose($handle); krsort($temp_arr);//逆序 foreach($temp_arr as $value){ echo "<font style='font-size:12px;color:#FFF'>".$value."</font>"."<br />"; } ?>
- 上一篇:约瑟夫环问题(环形链表)
- 下一篇:PHP POST
精彩图集
精彩文章