PHP程式百行代碼快速構建簡易聊天室方法

來源:互聯網
上載者:User
關鍵字 PHP程式百行代碼快速構建簡易聊天室方法

準系統:能登陸,聊天,記錄線上人數ip事件,能控制聊天的字型顏色,自動把轉化聊天中網址為連結地址,能定製聊天室標題、廣告資訊等等。使用文本作為儲存媒體,又興趣可以參考代碼,並且進行擴充。

其實php作為快速開發的指令碼語言是很棒的!

===代碼===

 * 建立: 2005-8-10 22:42 * 修改: 2005-8-11 23:25 */error_reporting(7);session_start();header("ContentType:text/html;charset=gb2312");define("SCRIPT", $_SERVER['SCRIPT_NAME']);define("CHAT_NOTE", "./chat.txt");define("ONLINE_LIST", "./online.txt");define("REF_TIME", 5);define("CHAT_NAME", "黑夜路人聊天室");define("AD_MSG", "今天是中國情人節, 祝大家情人節快樂!!");//擷取值if (isset($_GET['action']) && !empty($_GET['action'])) { $action = $_GET['action'];}//如果已經登陸那麼直接跳到聊天介面if (!isset($_GET['action']) && isset($_SESSION['username'])) { header("location:".SCRIPT."?action=chat");}//登陸提示if (!isset($_GET['action'])) { if (!session_is_registered('username')) {  echo " 

[ ".CHAT_NAME." ] © 2005

"; exit; }}//校正登陸if ($action=='login'){ if (isset($_POST['login_user']) && !empty($_POST['login_user'])) { $username = $_POST['login_user']; } else { $username = "遊客"; } session_register('username'); save_online($username, get_client_ip()); header("location:".SCRIPT."?action=chat");}//開始聊天www.cncms.comif ($action=="chat"){ $online_sum = get_online_sum(); echo "[ ".CHAT_NAME." ]
".AD_MSG."   [當前線上:$online_sum] ";}//說話介面if ($action=="say"){ echo "<head><title>[ ".CHAT_NAME." ]</title></head><center><body bgcolor=#C4BFB9 style='font-size:12px;'> ";}//儲存說話if ($action=="save"){ if ($_POST['chatmsg']!="") { save_chat($_POST['chatmsg'], $_SESSION['username'], $_POST['usercolor']); } header("location:".SCRIPT."?action=say");}//顯示聊天記錄if ($action=="show"){ echo "<body style='font-size:12px' >"; echo "<META HTTP-EQUIV=REFRESH CONTENT='".REF_TIME.";URL=".SCRIPT."?action=show'>"; if (file_exists(CHAT_NOTE)) { $chat_msg = @file_get_contents(CHAT_NOTE); echo $chat_msg; } else { echo "目前沒有人說話"; }}//退出聊天室if ($action=="logoff"){ unset($_SESSION['username']); session_destroy(); header("location:".SCRIPT);}/* 基本函數 *///儲存聊天記錄函數function save_chat($msg, $user, $color){ if (!$fp = fopen(CHAT_NOTE, "a+")) { die('建立聊天記錄檔案失敗, 請檢查是否有許可權.'); } $msg = htmlspecialchars($msg); $msg = PReg_replace('/([http|ftp:\/\/])*([a-zA-])+\.([a-zA-Z0-9_-])+\.([a-zA-Z0-9_-])+(a-zA-Z0-9_)*/', '\\0', $msg); $msg = preg_replace('/([a-zA-Z0-9_\.])+@([a-zA-Z0-9-])+\.([a-zA-Z0-9-]{2,4})+/', '\\0', $msg); $msg = date('H:i:s')." [".$user."]說: ".$msg."<br>\r\n"; if (!fwrite($fp, $msg)) { die('寫入聊天記錄失敗.'); } fclose($fp);}//寫線上人資訊function save_online($user, $ip){ if (!$fp = fopen(ONLINE_LIST, "a+")) { die("建立線上列表檔案失敗, 請檢查是否有許可權."); } $user = str_replace("|", "", $user); $line = $user."|".$ip."|".time()."\r\n"; if (!fwrite($fp, $line)) { die("寫入線上列表失敗."); } fclose($fp);}//擷取線上人數function get_online_sum(){ if (file_exists(ONLINE_LIST)) { $online_msg = file(ONLINE_LIST); return count($online_msg); } else { return 0; }}//擷取當前登陸使用者IPfunction get_client_ip(){ if ($_SERVER['REMOTE_ADDR']) { $cip = $_SERVER['REMOTE_ADDR']; } elseif (getenv("REMOTE_ADDR")) { $cip = getenv("REMOTE_ADDR"); } elseif (getenv("HTTP_CLIENT_IP")) { $cip = getenv("HTTP_CLIENT_IP"); } else { $cip = "unknown"; } return $cip;}?></CCID_CODE></PRE></TD></TR></TABLE></CENTER> <li ><i class="layui-icon">&#xe63a;
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.