龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

PHP 仿iPad界面的在线群聊

时间:2015-03-16 02:23来源:网络整理 作者:网络 点击:
分享到:
仿iPad界面的在线群聊 web在线群聊(iPad界面) 源码全部在ichat.zip压缩包里主要包括三个文件:index.php:表单值获取昵称文件,传值给chat.php文件;chat.php:主要文件,获取index.php的传值后,判

web在线群聊(iPad界面) 源码全部在ichat.zip压缩包里主要包括三个文件:index.php:表单值获取昵称文件,传值给chat.php文件;c hat.php:主要文件,获取index.php的传值后,判断是否填写昵称,空则为游客,本页包含聊天内容输入文本框,提交给本页面处理,将聊天记录保存在自动创 建的chat.txt文件中,使用iframe调用view.php来显示聊天内容;view.php:按行读取chat.txt文件的内容,逆序输出,每间隔20s 自动刷新待改进方面:(本人新手,正在学习中)1.防刷新机制2.读取内容应该用ajax演示地址:http://yimi.ncgp.net/chat

聊天界面

imgs/asCode/19220604_D5dM.jpg

chat.php文件

<?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);
}
?> 

view.php文件

<?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 />";
}
?>
精彩图集

赞助商链接