中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

值得分享的php+ajax實(shí)時(shí)聊天室
來源:易賢網(wǎng) 閱讀:1183 次 日期:2016-08-12 14:19:12
溫馨提示:易賢網(wǎng)小編為您整理了“值得分享的php+ajax實(shí)時(shí)聊天室”,方便廣大網(wǎng)友查閱!

非常經(jīng)典的一款php+ajax實(shí)時(shí)聊天室,其中使用PHP文件保存聊天記錄,按天劃分,PHP實(shí)現(xiàn)聊天的功能只有一個(gè)文件,整合了PHP與AJAX技術(shù),也就是說只要運(yùn)行這一個(gè)文件就可以啟動(dòng)PHP的聊天室了,關(guān)于代碼上面也是非常的簡(jiǎn)單,但是實(shí)現(xiàn)了聊天室一般的功能,聊天時(shí)的昵稱,更改昵稱的顏色,聊天字號(hào)大小,字體,加粗,窗體的變大變小等等,如果你想搞個(gè)聊天室來玩玩,這個(gè)源碼完全可以滿足普通的需求。

具體的效果看如下圖:

名單

關(guān)鍵代碼:

<?php

header('content-type:text/html;charset=utf-8');

//顯示在線用戶

$disonline = 1;

//新登陸時(shí)顯示最近內(nèi)容的條數(shù)(默認(rèn)為30條)

$leastnum = 30;

//默認(rèn)的房間名(默認(rèn)是每天換一個(gè)文件),如果去掉d,則是每月?lián)Q一個(gè)文件

$room = date("Y-m-d");

//房間保存路徑,必須仿quot;/"結(jié)尾,可以丿quot;../",等

$roomdir = "rooms/";

//編碼方式

$charset = "UTF-8";

//客戶端最大顯示內(nèi)容條數(shù)(建議不要太大)

$maxdisplay = 300;

//語(yǔ)言包

$lang = array(

//聊天室描述

"description"=>"聊天室.", 

//聊天室標(biāo)題

"title"=>"Welcome...!",

//第一個(gè)到聊天室的歡迎

"firstone"=>"<span style='font-size:16px;color:blue;'>Welcome...!</span>", 

//當(dāng)信息有禁止內(nèi)容時(shí)顯示

"ban" => array('法輪功', '共產(chǎn)黨', '李洪志', 'fuck', '叼', '你媽的', '他媽的'),

//關(guān)鍵字

"keywords"=>"Welcome...!",

//發(fā)言提示

"hereyourwords" => "在這里發(fā)言!"

);

$touchs = 10;

$title = $lang["title"];

$earlier = 10;

$description = $lang["description"];

$origroom = $room;

$least = ($_GET["dis"])?intval($_GET["dis"]):$leastnum;

if ($_GET["room"]) $room = $_GET["room"];

$room = checkfilename($room);

if (!$room) $room = $origroom;

$filename = $roomdir.$room.".dat.php";

$datafile = $roomdir.$room.".php";

if (!is_dir($roomdir)) {

 @mkdir($roomdir, 0777) or exit('no this dir.');

}

if(file_exists($filename)){

 if ((int)filemtime($filename) + 1800 < time()) {

 unlink($filename);

 }

}

if (!file_exists($filename)) @file_put_contents($filename,'<?php die();?>'."\n".time()."|".$lang["firstone"]."\n");

if (!file_exists($datafile)) @file_put_contents($datafile,'<?php die();?>'."\n");

$action = $_GET["action"];

if (!function_exists("file_get_contents"))

{

 function file_get_contents($path)

 {

 if (!file_exists($path)) return false;

 $fp=@fopen($path,"r");

 $all=fread($fp,filesize($path));

 fclose($fp);

 return $all;

 }

}

if (!function_exists("file_put_contents"))

{

 function file_put_contents($path,$val)

 {

 $fp=@fopen($path,"w");

 fputs($fp,$val);

 fclose($fp);

 return true;

 }

}

function checkfilename($file)

{

 if (!$file) return "";

 $file = trim($file);

 $a = substr($file,-1);

 $file = eregi_replace("^[.\\\/]*","",$file);

 $file = eregi_replace("[.\\\/]*$","",$file);

 $arr = array("../","./","/","\\","..\\",".\\");

 $file = str_replace($arr,"",$file);

 return $file;

}

function get_ip()

{

 global $_SERVER;

 if ($_SERVER)

 {

 if ( $_SERVER[HTTP_X_FORWARDED_FOR] )

 $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];

 else if ( $_SERVER["HTTP_CLIENT_ip"] )

 $realip = $_SERVER["HTTP_CLIENT_ip"];

 else

 $realip = $_SERVER["REMOTE_ADDR"];

 }

 else

 {

 if ( getenv( 'HTTP_X_FORWARDED_FOR' ) )

 $realip = getenv( 'HTTP_X_FORWARDED_FOR' );

 else if ( getenv( 'HTTP_CLIENT_ip' ) ) 

 $realip = getenv( 'HTTP_CLIENT_ip' );

 else

 $realip = getenv( 'REMOTE_ADDR' );

 }

 return $realip;

}

function array2json($arr)

{

 if (function_exists('json_encode')) return json_encode($arr);

 $keys = array_keys($arr);

 $isarr = true;

 $json = "";

 for($i=0;$i<count($keys);$i++)

 {

 if ($keys[$i] !== $i)

 {

 $isarr = false;

 break;

 }

 }

 $json = $space;

 $json.= ($isarr)?"[":"{";

 for($i=0;$i<count($keys);$i++)

 {

 if ($i!=0) $json.= ",";

 $item = $arr[$keys[$i]];

 $json.=($isarr)?"":$keys[$i].':';

 if (is_array($item))

 $json.=array2json($item);

 else if (is_string($item))

 $json.='"'.str_replace(array("\r","\n"),"",$item).'"';

 else $json.=$item;

 }

 $json.= ($isarr)?"]":"}";

 return $json;

}

if ($action == "write")

{

 $color = $_GET['color'];

 if (!eregi("[0-9a-fA-F]{6}",$color) || $color == "#000000") $color = "";

 $color = "#".$color;

 $size = intval($_GET["size"]);

 $arr = @file("php://input");

 $name = str_replace(array("\n","\r"),"",$arr[0]);

 $ip = get_ip();

 if ($disonline)

 {

 $onlines = @file_get_contents($datafile);

 $s1 = "|{$name}|{$ip}|";

 if (strpos($onlines,$s1) === false)

 {

 if (strpos($onlines,"|".$name."|") === false)

 {

 $fp = @fopen($datafile,"a+");

 if ($fp)

 {

 if (@flock($fp, LOCK_EX))

 {

 @fputs($fp,time()."|".time().$s1."\n");

 @flock($fp, LOCK_UN);

 }

 @fclose($fp);

 }

 }

 else

 {

 echo "NAME";

 die();

 }

 }

 }

 $s = "";

 $style = "";

 $font = $_GET["font"];

 if ($font == "songti") $font = "宋體";

 else if ($font == "heiti") $font = "黑體";

 else if ($font == "kaiti") $font = "楷體_GB2312";

 else $font = "";

 $style .= (!$font)?"":"font-family:".$font.";";

 $style .= (!$_GET["bold"])?"":"font-weight:bold;";

 $style .= (!$color || $color == "#")?"":"color:{$color};";

 $style .= (!$size || $size == "16")?"":"font-size:{$size}px;";

 $t = time();

 for($i = 1;$i<count($arr);$i++)

 {

 $content = $arr[$i];

 $content = str_replace(array("\n","\r"),"",$content);

 if ($content == "") continue;

 $content = preg_replace("!<img\s+(.*?)/>!i", "[img $1/]", $content);

 $content = str_replace(array('<', '>'), array('<', '>'), $content);

 $content = preg_replace("!\[img (.*?)/\]!i", "<img $1/>", $content);

 $content = str_replace($lang['ban'], '', $content);

 $content = ($style)?"<span style='{$style}'>{$content}</span>":$content;

 $ubbarray = array('[:ani_wink:]',

 '[:big_eyes:]',

 '[:cool:]',

 '[:cry:]',

 '[:eye_roll:]',

 '[:grin:]',

 '[:happy:]',

 '[:not_impressed:]',

 '[:smile:]',

 '[:smile_eyes:]',

 '[:stickout:]',

 '[:straight:]',

 '[:surprised:]',

 '[:unhappy:]',

 '[:wink:]');

 $content = str_replace($ubbarray, 

 array('<img src="smilies/ani_wink.gif" />',

 '<img src="smilies/big_eyes.gif" />',

 '<img src="smilies/cool.gif" />',

 '<img src="smilies/cry.gif" />',

 '<img src="smilies/eye_roll.gif" />',

 '<img src="smilies/grin.gif" />',

 '<img src="smilies/happy.gif" />',

 '<img src="smilies/not_impressed.gif" />',

 '<img src="smilies/smile.gif" />',

 '<img src="smilies/smile_eyes.gif" />',

 '<img src="smilies/stickout.gif" />',

 '<img src="smilies/straight.gif" />',

 '<img src="smilies/surprised.gif" />',

 '<img src="smilies/unhappy.gif" />',

 '<img src="smilies/wink.gif" />'), 

 $content);

 $s.= $t."|".$name.":".$content."\n";

 }

 if (!$name) die("No Name!!");

 if (!$s) die("No Content!!");

 $fp = @fopen($filename,"a+");

 if (!$fp) die("repeat");

 if (@flock($fp, LOCK_EX))

 {

 @fputs($fp,$s);

 @flock($fp, LOCK_UN);

 }

 else die("repeat");

 @fclose($fp);

 echo "OK";

}

else if (trim($action) == "read")

{

 if (get_magic_quotes_runtime()) {

 set_magic_quotes_runtime(0);

 }

 $first = $_GET["first"];

 $lastmod = intval($_GET["lastmod"]);

 $alastmod = @filemtime($filename);

 $name = file_get_contents("php://input");

 $name = str_replace("\n","",$name);

 $ip = get_ip();

 $json = array();

 $json["lastmod"] = $alastmod;

 $item = array();

 $newonline = array();

 $offline = array();

 $lines = @file($filename);

 if ($alastmod > $lastmod && !$first)

 {

 foreach($lines as $l)

 {

 $item2 = array();

 $l = str_replace(array("\n","\r"),"",$l);

 if (strpos($l,"|") === false) continue;

 $arr = explode("|",$l);

 $t = intval($arr[0]);

 if ($t > $lastmod)

 {

 $item2["time"] = date("H:i:s",$t);

 $item2["word"] = stripslashes($arr[1]);

 $item[] = $item2;

 }

 }

 }

 else if ($first)

 {

 $item = array();

 $total = count($lines);

 for($i=$total-1;$i>=$total-$least;$i--)

 {

 if ($i<=0) break;

 $item2 = array();

 $l = str_replace(array("\n","\r"),"",$lines[$i]);

 if (strpos($l,"|") === false) continue;

 $arr = explode("|",$l);

 $t = intval($arr[0]);

 $item2["time"] = (date("m-d",time()) == date("m-d",$t))?date("H:i:s",$t):date("m-d H:i",$t);

 $item2["word"] = stripslashes($arr[1]);

 $item[] = $item2;

 }

 $item = array_reverse($item);

 }

 $s = "";

 $nt = time();

 $onlines = array();

 if($disonline)

 {

 $users = @file($datafile);

 foreach($users as $l)

 {

 $l = str_replace(array("\r","\n"),"",$l);

 if (strpos($l,"|") === false)

 {

 $s.=$l."\n";

 continue;

 }

 $arr = explode("|",$l);

 if ($nt - intval($arr[1]) < $touchs*2+1)

 {

 if (trim($name) == trim($arr[2]))

 {

 $s.= $arr[0]."|".time()."|".$name."|".get_ip()."|\n";

 }

 else $s.=$l."\n";

 $onlines [] = $arr[2];

 }

 }

 @file_put_contents($datafile,$s);

 $json["onlines"] = $onlines;

 }

 $json["lines"] = $item;

 echo array2json($json);

 if (!get_magic_quotes_runtime()) {

 set_magic_quotes_runtime(1);

 }

}

else

{

?>

安裝說明:

因?yàn)檫@一款php+ajax實(shí)時(shí)聊天室的聊天記錄是保存到PHP文件中的,所以不用導(dǎo)入數(shù)據(jù)庫(kù),安裝自然也就方便多了,只需要將下載的文件包解壓縮到可以運(yùn)行PHP的根目錄下即可.

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:值得分享的php+ajax實(shí)時(shí)聊天室
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn)

版權(quán)所有:易賢網(wǎng)

中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
国产精品18久久久久久久网站| 日产国产欧美视频一区精品| 欧美一区二视频| 欧美日韩成人综合天天影院| 91福利国产成人精品照片| 91免费国产在线| 色综合天天做天天爱| 日韩免费一区二区| 成人污污视频在线观看| 成人综合婷婷国产精品久久 | 国产欧美视频在线观看| 亚洲国产高清在线观看视频| 久久久精品tv| 日韩一区在线看| 亚洲成人av电影在线| 日韩高清在线观看| 日本不卡的三区四区五区| 精品亚洲国内自在自线福利| 国产麻豆成人传媒免费观看| 99久久精品一区二区| 欧美日韩国产一区| 久久亚洲欧美国产精品乐播| 国产精品精品国产色婷婷| 亚洲一级片在线观看| 中文字幕制服丝袜一区二区三区 | 亚洲少妇中出一区| 一区二区三区在线高清| 日本一不卡视频| 国产精品456露脸| 欧美色图天堂网| 久久尤物电影视频在线观看| 亚洲欧美福利一区二区| 久久精工是国产品牌吗| 97精品电影院| 欧美tickling网站挠脚心| 成人欧美一区二区三区小说| 午夜av区久久| 成人激情开心网| 欧美一区二区网站| 亚洲色图制服丝袜| 狠狠色丁香久久婷婷综| 91极品美女在线| 国产亚洲综合在线| 青青草国产成人av片免费| 不卡一区二区三区四区| 欧美一区二区三区免费观看视频| 欧美激情艳妇裸体舞| 日本美女视频一区二区| 欧美三级三级三级爽爽爽| 国产午夜精品在线观看| 蜜桃av一区二区| 欧美日韩一区二区三区高清| 国产精品天天看| 国产麻豆精品视频| 欧美一区二区三区免费| 亚洲午夜一区二区三区| 不卡一区在线观看| 国产调教视频一区| 韩国一区二区视频| 欧美精品vⅰdeose4hd| 一区二区三区在线免费视频 | 亚洲欧洲精品一区二区三区| 精品综合免费视频观看| 日韩一级高清毛片| 亚洲高清久久久| 欧洲生活片亚洲生活在线观看| 国产精品欧美一区喷水| 国产成人综合在线| 国产亚洲欧美一级| 丰满白嫩尤物一区二区| 久久精品人人爽人人爽| 国产精品99久久久久久久女警| 欧美成人一级视频| 黄网站免费久久| 国产精品国产自产拍高清av| 亚洲成人午夜电影| 在线欧美日韩精品| 一区二区三区毛片| 欧美三级在线看| 亚洲chinese男男1069| 欧美午夜精品电影| 蜜臀av性久久久久蜜臀av麻豆| 欧美日韩aaa| 久久99精品视频| 久久久99久久| 成人一区二区三区在线观看| 国产精品私房写真福利视频| 91亚洲精品久久久蜜桃| 亚洲一区二区三区四区的| 欧美军同video69gay| 蜜臀av一区二区在线免费观看| 久久这里都是精品| 色婷婷综合久久久中文一区二区| 亚洲美女屁股眼交3| 7777精品伊人久久久大香线蕉经典版下载 | 欧美性色黄大片| 日韩和欧美一区二区| 欧美成人一区二区三区| 成人av在线一区二区| 亚洲裸体xxx| 日韩视频一区二区三区 | 色吧成人激情小说| 日本午夜一区二区| 欧美国产精品专区| 欧美三级视频在线| 国产精品一线二线三线精华| 自拍偷拍国产精品| 日韩欧美中文字幕公布| 成人毛片老司机大片| 无码av免费一区二区三区试看| 久久久久久久电影| 欧美三级电影在线观看| 国产成人午夜片在线观看高清观看| 亚洲人成伊人成综合网小说| 日韩亚洲欧美一区二区三区| 91在线播放网址| 久久99国产乱子伦精品免费| 亚洲激情五月婷婷| 久久夜色精品国产噜噜av| 色婷婷国产精品综合在线观看| 久久精品99国产精品| 一区二区三区在线视频播放| 国产婷婷色一区二区三区四区| 69精品人人人人| 在线免费视频一区二区| 成人免费毛片aaaaa**| 蜜臀av性久久久久蜜臀av麻豆| 亚洲六月丁香色婷婷综合久久| 久久久av毛片精品| 欧美丰满少妇xxxxx高潮对白| 91在线国产观看| 成人美女视频在线观看| 国产成人在线色| 蜜臀av亚洲一区中文字幕| 亚洲成人激情自拍| 亚洲免费高清视频在线| 中文一区二区完整视频在线观看 | www.成人在线| 国产精品夜夜嗨| 极品尤物av久久免费看| 日韩和的一区二区| 日本免费在线视频不卡一不卡二| 一区二区欧美精品| 亚洲综合久久av| 亚洲一区二区三区在线| 亚洲免费看黄网站| 一区二区三区美女视频| 一区二区三区在线免费视频 | 91精品国产综合久久久蜜臀粉嫩| 一本色道久久综合亚洲精品按摩| 97精品超碰一区二区三区| 成人美女在线观看| 91在线观看免费视频| 91日韩在线专区| 91麻豆国产精品久久| 日本高清不卡视频| 欧美性三三影院| 91精品国产免费| 日韩欧美一级二级| 久久美女高清视频| 国产精品污网站| 一区二区三区在线视频观看| 亚洲国产欧美在线| 奇米888四色在线精品| 狠狠久久亚洲欧美| 成人av电影免费观看| 色婷婷国产精品| 91精品国产91综合久久蜜臀| 精品理论电影在线观看| 国产日韩欧美综合在线| 亚洲特级片在线| 五月天久久比比资源色| 国模冰冰炮一区二区| va亚洲va日韩不卡在线观看| 91免费在线播放| 日韩免费性生活视频播放| 国产精品欧美一级免费| 亚洲一本大道在线| 国产在线视视频有精品| 不卡的av网站| 91精品国产综合久久福利| 国产清纯在线一区二区www| 亚洲精品免费播放| 人妖欧美一区二区| 成人激情小说网站| 3d成人h动漫网站入口| 国产精品视频免费看| 水蜜桃久久夜色精品一区的特点| 狠狠色丁香久久婷婷综合_中| 色噜噜夜夜夜综合网| 亚洲一区二区在线视频| 一区二区国产盗摄色噜噜| 亚洲观看高清完整版在线观看 | 91精品中文字幕一区二区三区| 久久一区二区视频| 亚洲大型综合色站| 成人精品国产福利| 日韩美女视频在线| 一区二区在线电影| 国产福利不卡视频|