熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

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

2013-11-15 12:43:51  來源: PHP編程 

  基本功能能登陸聊天記錄在線人數IP事件能控制聊天的字體顏色自動把轉化聊天中網址為鏈接地址能定制聊天室標題廣告信息等等使用文本作為存儲媒體又興趣可以參考代碼並且進行擴展

  其實PHP作為快速開發的腳本語言是很棒的!

  ===代碼===

  <?php
  /**
  * 黑夜路人簡易聊天室
  * 作者: heiyeluren <heiyeluren_at_com>
  * 創建: :
  * 修改: :
  */
  error_reporting();
  session_start();
  header(ContentType:text/html;charset=gb);
  define(SCRIPT $_SERVER[SCRIPT_NAME]);
  define(CHAT_NOTE /chattxt);
  define(ONLINE_LIST /onlinetxt);
  define(REF_TIME );
  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 <p><h align=center>[ CHAT_NAME ] &copy; </h></p>
    <p align=center>
    <form action=SCRIPT?action=login method=post>
    呢稱: <input type=text size= maxlength= name=login_user>
    <input type=submit value=聊天>
    </form></p>
    ;
    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);
  }
  //開始聊天wwwknowskycom
  if ($action==chat)
  {
   $online_sum = get_online_sum();
   echo <head><title>[ CHAT_NAME ]</title></head><center>
   <body bgcolor=#CBFB style=fontsize:px;>
   <div style=border:px solid #; width:px;height:>
   <iframe src=SCRIPT?action=show
   name=show_win width= height= scrolling=auto frameborder=></iframe>
   </div><br>
   <marquee width=% scrollamount=> AD_MSG </marquee>&nbsp;&nbsp;
   [當前在線$online_sum]
   <iframe src=SCRIPT?action=say name=say_win width=
   height= scrolling=no frameborder=>
   ;
  }
  //說話界面
  if ($action==say)
  {
   echo <head><title>[ CHAT_NAME ]</title></head><center>
   <body bgcolor=#CBFB style=fontsize:px;>
   <form action=SCRIPT?action=save method=post name=chat
   onSubmit=return check()>
   [$_SESSION[username]]說:<input type=text size=
   maxlength= name=chatmsg style= backgroundcolor:#CC;
   width:px; height:px; border:px solid:#>
   <select name=usercolor>
   <OPTION selected style=COLOR: # value=>默認顏色</OPTION>
   <OPTION style=COLOR: # value=#>黑色沉靜</OPTION>
   <option style=COLOR: #ff value=#FF>紅色熱情</option>
   <option style=COLOR: #ff value=#FF>藍色開朗</option>
   <option style=COLOR: #ffff value=#FFFF>桃色浪漫</option>
   <option style=COLOR: # value=#>綠色青春</option>
   <option style=COLOR: # value=#>青色清爽</option>
   <option style=COLOR: # value=#>紫色拘謹</option>
   <option style=COLOR: # value=#>暗夜興奮</option>
   <option style=COLOR: # value=#>深藍憂郁</option>
   <option style=COLOR: # value=#>卡其制服</option>
   <option style=COLOR: #ff value=#FF>镏金歲月</option>
   <option style=COLOR: #ff value=#FF>湖波蕩漾</option>
   <option style=COLOR: #ff value=#FF>發亮藍紫</option>
   <option style=COLOR: #ff value=#FF>愛的暗示</option>
   <option style=COLOR: # value=#>墨綠深沉</option>
   <option style=COLOR: # value=#>灰色軌跡</option>
   <option style=COLOR: # value=#>倫敦灰霧</option>
   </select>
   <input type=submit value=說話 style=backgroundcolor:#ffffff>
   <a href=SCRIPT?action=logoff title=退出聊天室
   target=_top onclick=return confirm(\你確定要退出聊天室嗎?\)>退出</a>
   </form>
   <script>function check(){if(documentchatchatmsgvalue==)
   {;alert(請輸入聊天信息!);return false;}return true;}</script>
   ;
  }
  //保存說話
  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=fontsize:px onload=scrollit()>;
   echo <META HTTPEQUIV=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:\/\/])*([azA])
   +\([azAZ_])+\([azAZ_])+(azAZ_)*/
   <a href=\\ target=_blank>\\</a> $msg);
   $msg = preg_replace(/([azAZ_\])+@([azAZ])
   +\([azAZ]{})+/ <a href=mailto:\\>\\</a> $msg);
   $msg = date(H:i:s) [$user]說:
   <font color=$color>$msg</font><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 ;
   }
  }
  //獲取當前登陸用戶IP
  function 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;
  }
  ?>


From:http://tw.wingwit.com/Article/program/PHP/201311/21485.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.