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

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

WBOY
WBOYOriginal
2016-05-16 20:27:391030browse

本文实例讲述了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程序设计有所帮助。

Statement:
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