PHP實現簡單聊天室(附源碼)第1/2頁_PHP教程

來源:互聯網
上載者:User
一,聊天室模組實現
1,聊天室首頁面視窗設定
複製代碼 代碼如下:




<?php echo CHAT_NAME; ?>

















<BR><body></body><BR>

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的值設定大一些即可。
複製代碼 代碼如下:


(2)頁面元素中的捲軸
頁面元素中的捲軸可以用scrollTop屬性來實現定位。scrollTop屬性工作表示當前對象的頂點距離其最外層對象元素的距離。文法如下:
object.scrollTop=distance;
在聊天室公用視窗中的滾屏效果,就是使用的該屬性來定位捲軸。公用視窗使用一個div層來顯示聊天資訊。首先將div層的縱向捲軸設為自動,橫向捲軸設為無並自動換行。
複製代碼 代碼如下:
...

在Javascript中設定縱向捲軸的scrollTop屬性等於它滾動高度(定位到聊天視窗的最下面)
複製代碼 代碼如下:


5,屏蔽重新整理技術
屏蔽重新整理,就是屏蔽鍵、屏蔽滑鼠右鍵和隱藏瀏覽器中的[重新整理] 按鈕3部分。每個部分使用的技術都不相同。

(1)隱藏[重新整理] 按鈕
open()函數的作用是開啟一個新視窗,並可以對視窗樣式進行設定。
Open()函數的文法格式如下:
op=window.open(

http://www.bkjia.com/PHPjc/327861.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327861.htmlTechArticle一,聊天室模組實現 1,聊天室首頁面視窗設定 複製代碼 代碼如下: meta http-equiv="Content-Type" content="text/html; charset=gb2312" / !--載入設定檔--...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.