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

2015-01-24信息快讯网

这篇文章主要介绍了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程序设计有所帮助。

php使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php+mysql实现无限分类实例详解
php截取html字符串及自动补全html标签的方法
php在linux下检测mysql同步状态的方法
ucenter通信原理分析
php计划任务之ignore_user_abort函数实现方法
WampServer下安装多个版本的PHP、mysql、apache图文教程
PHP和Shell实现检查SAMBA与NFS Server是否存在
phpQuery让php处理html代码像jQuery一样方便
jQuery+PHP实现的掷色子抽奖游戏实例
PHP+jquery实时显示网站在线人数的方法
php+jQuery.uploadify实现文件上传教程
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
php新浪微博登录接口用法实例
PHP采集静态页面并把页面css,img,js保存的方法
php获取QQ头像并显示的方法
php实现基于微信公众平台开发SDK(demo)扩展的方法
php微信公众开发之获取周边酒店信息的方法
php天翼开放平台短信发送接口实现方法
腾讯微博提示missing parameter errorcode 102 错误的解决方法
php运行提示:Fatal error Allowed memory size内存不足的解决方法
php中magic_quotes_gpc对unserialize的影响分析
php中get_meta_tags()、CURL与user-agent用法分析
php使用ereg验证文件上传的方法
jQuery Mobile + PHP实现文件上传
ThinkPHP采用原生query实现关联查询left join实例
PHP集成百度Ueditor 1.4.3
php中convert_uuencode()与convert_uuencode函数用法实例
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
©2014-2024 dbsqp.com