91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何實現簡單聊天室

發布時間:2021-06-25 10:19:07 來源:億速云 閱讀:181 作者:小新 欄目:開發技術

這篇文章主要介紹了PHP如何實現簡單聊天室,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一,聊天室模塊實現
1,聊天室主頁面窗口設置

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<!--載入配置文件-->
<?php include_once 'config.php';?>
<!--頁面標題-->
<title><?php echo CHAT_NAME; ?></title>
<script language="javascript" src="main.js"></script>
<frameset rows="80,*,100" cols="*" frameborder="yes" border="1" framespacing="0">
<!--頂部窗口-->
 <frame src="top.php" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
 <frameset rows="*" cols="168,*" framespacing="0" frameborder="yes" border="1">
<!--左側窗口-->
  <frame src="list.php" name="leftFrame" scrolling="No" id="leftFrame" title="leftFrame" />
  <frameset rows="70%,*" cols="*" framespacing="0" frameborder="yes" border="1">
<!--公共聊天窗口-->
   <frame src="center.php" scrolling="auto" name="mainFrame" noresize="noresize" id="mainFrame" title="mainFrame" />
<!--私聊窗口-->
   <frame src="private.php" scrolling="auto" name="priFrame" id="priFrame" title="priFrame" />
  </frameset>
 </frameset>
<!--發言窗口-->
 <frame src="talk.php" name="bottomFrame" scrolling="No" noresize="noresize" id="bottomsFrame" title="bottomFrame" />
</frameset>
<noframes>
<body></body>
</noframes>

2,文件操作函數
本聊天室模塊使用文本來保存用戶列表和發言信息,主要考慮對文件的操作在速度上要優于對數據庫的操作。

(1)fopen()函數,打開文件或者URL,如果打開失敗,函數返回FALSE
語法:fopen(filename,mode,include_path,context)
參數說明:
filename:
必須,規定要打開的文件或URL
mode:必須,規定要求到該文件/流的訪問類型。
include_path:可選,如果也需要在include_path中檢索文件的話,可以將該參數設為1或TRUE。
context:可選。規定文件句柄的環境,context是可以修改流的行文的一套選項
mode參數的取值:
"r":只讀方式打開,將文件指針指向文件頭。
"r+":讀寫方式打開,將文件指針指向文件頭。
"w":寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創建。
"w+":讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創建。
"a":寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建。
"a+":讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建。"x":創建并以寫入方式打開,文件指針指向文件頭。如果文件已存在,則fopen()調用失敗并返回FALSE,并生成一條E_WARNING級別的錯誤信息。如果文件不存在則嘗試創建。"x+":創建并以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則fopen()調用失敗并返回FALSE,并生成一條E_WARNING級別的錯誤信息。如果文件不存在則嘗試創建。

(2)fclose()函數,關閉打開的文件
語法:fclose(file)
參數:file:必須,規定要關閉的文件。file參數是一個文件指針,fclose()函數關閉指針指向的文件。文件指針必須有效,并且是通過fopen()或fsockopen()成功打開的文件。如果成功則返回true,否則返回false。

(3)讀取文件函數
********
fgets(file,length)函數用于一次讀取一行數據
file:必須,規定要讀取的文件
length:可選,規定要讀取的字節數,默認是1024字節。從file指向的文件中讀取一行并返回長度最多為length-1字節的字符串。碰到換行符(包括在返回值中)、EOF或者已經讀取了length-1字節后停止。如果沒有指定length,默認為1K,或者說1024字節。若失敗,則返回false。
********
file(path,include_path,context),將文件作為一個數組返回,數組中的每個單元都是文件中相應的一行,包括換行符在內。若失敗,則返回false。
path:必須,規定要讀取的文件。
include_path:可選。如果想在include_path中搜索文件,將該參數設為1.
context:可選。規定文件句柄的環境。context是一套可以修改流的行為的選項,若使用null,則忽略。
********
file_get_contents(path,include_path,context,start,max_length),是用于將文件的內容讀入到一個字符串中的首選方法。
path:必須,規定要讀取的文件
include_path:可選,如果也想在include_path中搜尋文件的話,可以將該參數設為"1".
context:可選,規定文件句柄的環境。context是一套可以修改流的行為的選項。若使用null,則忽略。
start:可選,規定在文件中開始讀取的位置。
max_length:可選,規定讀取的字節數。

(4)寫入文件函數
寫入數據也是PHP中常用的文件操作,在PHP中可以使用fwrite()和fputs()函數向文件中寫入數據。fputs()函數是fwrite()函數的別名。他們的用法相同。
語法:fwrite(file,string,length)
參數說明:
file:必須,規定要寫入的打開文件。
string:必須,規定要寫入的文件的字符串。
length:可選。規定要寫入的最大字節數。
fwrite()把string的內容寫入文件指針file處。如果指定了length,當寫入了length個字節或者寫完了string以后,寫入就會停止。發write()返回寫入的字節數,出現錯誤時則返回false。

(5)刪除文件
unlink(filename,context)函數用于刪除文件,該文件必須是關閉的,若成功則返回true,失敗則返回false。
filename:必須,規定要刪除的文件;
context:可選,規定文件句柄環境。context是可修改流的行為的一套選項。

3,定時刷新技術刪除不發言用戶
定時刷新,是指每隔一段時間,對象被重新加載一次,也可以只加載一次。使用javascript腳本能夠輕松實現該功能。
(1)setInterval()函數
JavaScript中的setInterval()函數可以每隔一段時間,就執行一次操作。該函數語法格式如下:
window.setInterval(Function,MilliSeconds)
參數Function表明要執行的操作,可以是一個函數。
參數MiliSeconds表示間隔的時間,單位是毫秒。
使用setInterval()函數后,只要不關閉頁面,該函數就會一直執行下去。如果想結束事件,可以使用clearInterval()函數。函數格式如下:
window.clearInterval(Interval)
參數Interval是setIntervald()函數的返回值。

(2)setTimeout()函數
setTimeout()函數和setInterval()函數用法相同,但setTimeout()函數只執行一次。用于在聊天室中定時刪除不發言的用戶。

4,滾屏顯示時滾動條定位技術
聊天室中的滾屏功能,最新發言信息是顯示在頁面的最底部,而每次刷新時,頁面焦點都被定位到最上面。滾動條的定位可分為整個頁面窗口的滾動條和頁面元素中的滾動條.

(1)窗口中的滾動條
窗口中的滾動條可以通過scroll()函數來實現定位。
語法:window.scroll(x,y)
參數x表示滾動條水平位置的坐標。參數y表示滾動條垂直位置的坐標。如果要將滾動條置底,那么只要將y的值設置大一些即可。

<script language="javascript"> //定位滾動條
function scrollWindow(){
 this.scroll(0,75000); //設置滾動條坐標
 setInterval('scrollWindow()',200); //每200毫秒執行一次函數
}
scrollWindow();
</script>

(2)頁面元素中的滾動條
頁面元素中的滾動條可以用scrollTop屬性來實現定位。scrollTop屬性表示當前對象的頂點距離其最外層對象元素的距離。語法如下:
object.scrollTop=distance;
在聊天室公共窗口中的滾屏效果,就是使用的該屬性來定位滾動條。公共窗口使用一個div層來顯示聊天信息。首先將div層的縱向滾動條設為自動,橫向滾動條設為無并自動換行。

<div id="publist" >...</div>

在Javascript中設置縱向滾動條的scrollTop屬性等于它滾動高度(定位到聊天窗口的最下面)

<script language="javascript">
//定位滾動條
function scrollWindow(){
 document.getElementById('publist').scrollTop = document.getElementById('publist').scrollHeight;
 setTimeout('scrollWindow()',200);
}
</script>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“PHP如何實現簡單聊天室”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

自治县| 九龙坡区| 怀安县| 富川| 昌吉市| 清新县| 恩施市| 太和县| 泰来县| 清水县| 铅山县| 英超| 七台河市| 兰州市| 宜宾市| 永康市| 大竹县| 资讯| 宁海县| 安化县| 墨竹工卡县| 池州市| 昌邑市| 拜城县| 腾冲县| 佛冈县| 安远县| 抚顺市| 满城县| 甘谷县| 鄂州市| 休宁县| 陕西省| 三门峡市| 望城县| 肇东市| 大名县| 信宜市| 金湖县| 永平县| 微博|