Home > Backend Development > PHP Tutorial > PHP+jquery+ajax实现即时聊天功能实例_php技巧

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

WBOY
Release: 2016-05-16 20:27:39
Original
1025 people have browsed it

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

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

index.html页面如下:

复制代码 代码如下:




无标题文档

<script> <br /> var chat = { <br /> init:function(){ <br /> chat.first(); <br /> $('#chat_btn').unbind('click').click(function(){ <br /> chat.send(); <br /> }); <br /> $('#my_chat').keyup(function(){ <br /> if(event.keyCode == 13){ <br /> chat.send(); <br /> } <br /> });<br /> }, <br /> first:function(){ <br /> $.getJSON('data.php',{ <br /> action:'first', <br /> type:'l' <br /> },function(data){ <br /> chat.btn_status._true(); <br /> $('#mwebtime').html(data.time); <br /> $('#chat textarea').val(data.chat); <br /> $('#chat textarea').stop(true,true).animate({scrollTop:9999}, 1); <br /> chat.socket(); <br /> }); <br /> }, <br /> send:function(){ <br /> chat.btn_status._false(); <br /> $.getJSON('send.php',{ <br /> txt:$('#my_chat').val(), <br /> type:'l' <br /> },function(data){ <br /> if(data.status==200){ <br /> chat.btn_status._false(); <br /> $('#my_chat').val(''); <br /> setTimeout(function(){ <br /> chat.btn_status._true(); <br /> },2000); <br /> } <br /> }); <br /> }, <br /> socket:function(){ <br /> $.getJSON('data.php',{ <br /> action:'while', <br /> type:'l' <br /> },function(data){ <br /> $('#mwebtime').html(data.time); <br /> $('#chat textarea').val(data.chat); <br /> $('#chat textarea').stop(true,true).animate({scrollTop:9999}, 1); <br /> chat.socket(); <br /> }); <br /> }, <br /> btn_status:{ <br /> _false:function(){ <br /> $('#chat_btn').html('等待').attr('disabled',true); <br /> }, <br /> _true:function(){ <br /> $('#chat_btn').html('发言').attr('disabled',false); <br /> } <br /> } <br /> } <br /> chat.init(); <br /> </script>

 


 
 

 
 



data.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页面如下:

复制代码 代码如下:
$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程序设计有所帮助。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template