這篇文章主要介紹了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程序設計有所幫助。