首页 > 开发 > PHP > 正文

PHP+jquery+ajax实现即时聊天功能实例

2024-05-04 23:29:16
字体:
来源:转载
供稿:网友
这篇文章主要介绍了PHP+jquery+ajax实现即时聊天功能的方法,实例分析了php聊天功能的信息无刷新提交方法,以及信息发送处理等功能,具有一定的参考借鉴价值,需要的朋友可以参考下
 
 

本文实例讲述了PHP+jquery+ajax实现即时聊天功能的方法。分享给大家供大家参考。具体如下:

这是一个简单的利用jquery与php做的一个聊天室的源码,我们这里定时利用ajax读取数据库并进行刷新了,下面直接参上源码,实例代码如下:

index.html页面如下:

复制代码代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>无标题文档</title> 
<script src="js/jquery-1.9.1.min.js"></script> 
<script> 
var chat = { 
 init:function(){ 
  chat.first(); 
  $('#chat_btn').unbind('click').click(function(){ 
   chat.send(); 
  }); 
  $('#my_chat').keyup(function(){ 
   if(event.keyCode == 13){ 
    chat.send(); 
   } 
  });
 }, 
 first:function(){ 
  $.getJSON('data.php',{ 
   action:'first', 
   type:'l' 
  },function(data){ 
   chat.btn_status._true(); 
   $('#mwebtime').html(data.time); 
   $('#chat textarea').val(data.chat); 
   $('#chat textarea').stop(true,true).animate({scrollTop:9999}, 1); 
   chat.socket(); 
  }); 
 }, 
 send:function(){ 
  chat.btn_status._false(); 
  $.getJSON('send.php',{ 
   txt:$('#my_chat').val(), 
   type:'l' 
  },function(data){ 
   if(data.status==200){ 
    chat.btn_status._false(); 
    $('#my_chat').val(''); 
    setTimeout(function(){ 
     chat.btn_status._true(); 
    },2000); 
   } 
  }); 
 }, 
 socket:function(){ 
  $.getJSON('data.php',{ 
   action:'while', 
   type:'l' 
  },function(data){ 
   $('#mwebtime').html(data.time); 
   $('#chat textarea').val(data.chat); 
   $('#chat textarea').stop(true,true).animate({scrollTop:9999}, 1);  
   chat.socket(); 
  }); 
 }, 
 btn_status:{ 
  _false:function(){ 
   $('#chat_btn').html('等待').attr('disabled',true); 
  }, 
  _true:function(){ 
   $('#chat_btn').html('发言').attr('disabled',false); 
  } 
 } 

chat.init(); 
</script> 
</head> 
  
<body> 
<div id="chat"> 
 <textarea wrap="physical" style="line-height:20px;font-size:12px;height:100px;width:200px;"></textarea> 
 <BR /> 
 <input id="my_chat" type="text" /> 
 <button id="chat_btn" disabled="disabled">发言</button> 
</div> 
<div id="mwebtime"></div> 
</body> 
</html>

 

data.php页面如下:

复制代码代码如下:
<?php 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");  
header("Cache-Control: no-cache, must-revalidate");  
header("Pramga: no-cache"); 
set_time_limit(0); 
$get = $_GET['action']; 
$type = $_GET['type']; 
$file = $type.'.txt'; 
if(isset($get) && isset($type) && file_exists($file)){ 
 switch($get){ 
  case 'first': 
   $chat = file_get_contents($file); 
   $json=array( 
    'status' => 200, 
    'time' => gmdate("s"), 
    'chat' => $chat, 
   ); 
   echo json_encode($json); 
   break;
  case 'while': 
   $oldsize = filesize($file); 
   $newsize = filesize($file); 
   while(true){ 
    if($oldsize!=$newsize){ 
     $chat = file_get_contents($file); 
     $json=array( 
      'status' => 200, 
      'time' => gmdate("s"), 
      'chat' => $chat, 
     ); 
     echo json_encode($json); 
     exit; 
    } 
    clearstatcache(); 
    $newsize = filesize($file); 
    usleep(10000); 
   } 
   break; 
 } 

?>

 

send.php页面如下:

复制代码代码如下:
<?php 
$json = array(); 
$txt = isset($_GET['txt'])?$_GET['txt']:''; 
$type = isset($_GET['type'])?$_GET['type']:''; 
if($txt!=''){ 
 $file = $type.".txt"; 
 if(file_exists($file)){ 
  $fp = fopen($file,"a"); 
  $str = "rn".'Admin:'.$txt; 
  //$str = $txt."n"//linux; 
  fwrite($fp, $str); 
  fclose($fp); 
  $json['status']=200; 
  echo json_encode($json); 
  exit; 
 } 

?>

 

希望本文所述对大家的php程序设计有所帮助。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表