本文目錄一覽:
搭建一個聊天室用什麼語言好?PHP可以嗎?
php當然可以,我覺得任何一種語言都可以搭建一個聊天室!C語言也可以!用Java語言也可以!不過,我建議你最好用Php語言,如果你有基礎的話。哪種語言最擅長的話,就用哪種語言!
用php做的聊天室CPU佔用很高怎麼解決
CPU資源佔用100%解決方法
1、驅動沒有經過認證,造成CPU資源佔用100%。大量的測試版的驅動在網上泛濫,造成了難以發現的故障原因。
2、防、殺毒軟體造成故障。由於一些防、殺毒軟加入了對網頁、插件、郵件的隨機監控,無疑增大了系統負擔,可以根據情況有選擇的開啟服務。
3、病毒、木馬造成。大量的蠕蟲病毒在系統內部迅速複製,造成CPU佔用資源率據高不下。解決辦法:使用最新的殺毒軟體在DOS模式下進行殺毒。經常性更新升級殺毒軟體和防火牆,加強防毒意識,掌握正確的防殺毒知識。
4、開始->運行->msconfig->啟動,關閉不必要的啟動項,重啟。
5、查看「svchost」進程。
Svchost.exe是Windows XP系統的一個核心進程。Svchost.exe不單單只出現在Windows XP中,在使用NT內核的Windows系統中都會有Svchost.exe的存在。一般在Windows 2000中Svchost.exe進程的數目為2個,而在Windows XP中Svchost.exe進程的數目就上升到了4個及4個以上。
如何才能辨別哪些是正常的Svchost.exe進程,而哪些是病毒進程呢?
Svchost.exe的鍵值是在「HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost」,每個鍵值表示一個獨立的Svchost.exe組。
微軟還為我們提供了一種察看系統正在運行在Svchost.exe列表中的服務的方法。以Windows XP為例:在「運行」中輸入:cmd,然後在命令行模式中輸入:tasklist /svc。系統列出服務列表。如果使用的是Windows 2000系統則把前面的「tasklist /svc」命令替換為:「tlist -s」即可。
如果你懷疑計算機有可能被病毒感染,Svchost.exe的服務出現異常的話通過搜索Svchost.exe文件就可以發現異常情況。一般只會找到一個在:「C:\Windows\System32」目錄下的Svchost.exe程序。如果你在其他目錄下發現Svchost.exe程序的話,那很可能就是中毒了。
還有一種確認Svchost.exe是否中毒的方法是在任務管理器中察看進程的執行路徑。但是由於在Windows系統自帶的任務管理器不能察看進程路徑,所以要使用第三方的進程察看工具。
上面簡單的介紹了Svchost.exe進程的相關情況。總而言之,Svchost.exe是一個系統的核心進程,並不是病毒進程。但由於Svchost.exe進程的特殊性,所以病毒也會千方百計的入侵Svchost.exe。通過察看Svchost.exe進程的執行路徑可以確認是否中毒。
6、查看網路連接。主要是網卡。
7、把網卡、顯卡、音效卡卸載,然後重新安裝一下驅動。
8、重裝系統、常用軟體、當然也要裝驅動,用幾天看一下。若不會出現這種問題,再裝上其他軟體,但是最好是一個軟體裝完,先用幾天。現會出現問題再接著裝。
php聊天室
當然不是,流程是這樣:
用戶登錄或者管理員從後台新建一個房間,入庫,然後在需要的地方把數據調出來,這樣新登入的用戶就可以看到當前已經存在的房間了,然後就可以選擇進入不同的房間,當用戶進入房間以後會把用戶與這個房間相關聯,現在所有在這個房間有許可權的人都可以發言了,然後使這條消息只顯示給與這個房間相關聯的用戶。
你可以先做個簡單點的。。然後再慢慢完善,一步一步的來。。
PHP如何實現聊天室
1,配置文件
複製代碼代碼如下:
?php
define(‘PATH’,dirname($_SERVER[‘SCRIPT_NAME’])); //聊天室目錄
define(‘CHAT_NAME’,’PHP聊天室’); //聊天室名稱
define(“MESS”, “mess.txt”); //聊天信息
define(“PERSON”, “person.txt”); //在線人名單
define(“RETIME”,3); //刷新時間
define(“LINE”,11); //公共窗口顯示的行數
define(“PRLINE”,5); //私聊窗口顯示的行數
define(“MAX”,50); //聊天室人數限制
define(“MAXTIME”,600000); //最大不發言時間,單位是毫秒
define(“WELCOME”,”font color=blue歡迎光臨”.CHAT_NAME.”,請遵守聊天室規則,不要惡意刷新,不要使用不文明用語。/font”); //歡迎語
?
2,公共函數文件
(1)chklogin()函數檢查用戶昵稱是否重複。參數$user是登錄用戶的昵稱。當函數返回值為True時,昵稱不可用;返回值為False時,昵稱可用。
複製代碼代碼如下:
function chklogin($file,$user){
$boo = false;
if(file_exists($file)){
$userarr = file($file);
/* 判斷昵稱是否重複 */
foreach($userarr as $value){ //判斷昵稱是否重複
$tmparr = explode(‘#’,$value); //使用「#」作為分隔符來拆分字元串
if($user == $tmparr[0]){ //如果用戶數組中包含此用戶
$boo = true;
break;
}
}
}
return $boo;
}
(2)addlogin()函數將登錄的用戶昵稱寫入文件中,保存格式為:昵稱#IP#性別,參數$file是保存的文件地址,$user是用戶昵稱,$ip是登陸IP,$sex表示用戶性別。
複製代碼代碼如下:
function addlogin($file,$user,$ip,$sex){
$tmp = $user.’#’.$ip.’#’.$sex.chr(13).chr(10); //chr(13) 是一個回車,Chr(10) 是個換行符,chr(32) 是一個空格符
$fp = fopen($file,’a’); //寫入方式在文件末尾追加信息
$boo = fwrite($fp,$tmp);
fclose($fp);
return $boo;
}
(3)storeuser()函數的作用是將用戶信息存為一個數組。格式為「用戶名,用戶性別」,參數$file是用戶列表文件。代碼如下:
複製代碼代碼如下:
function storeuser($file){
$tmparr = file($file); //將文件內容寫入數組
$userarr = array(); //創建數組
foreach($tmparr as $value){ //循環輸出數組內容
$tmparr = explode(‘#’,$value); //使用#拆分字元串
$userarr[] = $tmparr[0].’,’.$tmparr[2]; //將用戶名和用戶性別保存到新數組中
}
return $userarr;
}
(4)addmess()函數將發言內容寫入文件中。參數$file是保存的文件地址,$mess是要保存的內容
複製代碼代碼如下:
function addmess($file,$mess){
$fp = fopen($file,’a’); //以追加的形式打開文件
$boo = fwrite($fp,$mess.chr(13).chr(10)); //將信息寫入文件中
fclose($fp); //關閉文件
return boo;
}
(5)deluser()函數的作用是刪掉用戶。參數$file是保存的文件地址,$user是要刪除的用戶
複製代碼代碼如下:
function deluser($file,$user){
$tmparr = file($file); //將文件內容寫入數組
$rearr = array(); //創建數組
foreach($tmparr as $value){ //循環輸出數組內容
$tmp = explode(‘#’,$value); //使用#拆分字元串
if($tmp[0] != $user){ //如果變數中的用戶名和當前用戶不相等
$rearr[] = $value; //將該用戶信息保存到新數組中
}
}
$fp = fopen($file,’w+’); //以只寫的方式打開文件
foreach($rearr as $value){ //循環數組
fwrite($fp,$value); //寫入數組內容
}
fclose($fp); //關閉文件
}
(6)getRows()函數的作用是返迴文件的行數,參數$file是文件名
複製代碼代碼如下:
function getRows($file){
if(file_exists($file)){ //如果文件存在
$fl = file($file); //將文件按行寫入數組
return count($fl); //求出數組長度並返回
}else{
return 0; //如果文件不存在,返回0
PHP怎樣開發聊天室
可以看下socket類型的php框架,比如swoole和workerman,workerman下面有個
workerman-chat PHP聊天室和PHP小蝌蚪聊天室的demo可以下載源碼參考參考
php 聊天室刷新問題
不刷新的聊天室,首先你保存內容的chat.txt文件要修改,要增加一列保存消息ID,這個ID是自動增加,永不重複的,不知道你現在的是怎麼設計,可以如下:
消息ID|說話人|說話對象|消息內容
有發送消息的程序修改這個文件,控制只保留10條內容,有人發消息時候,把消息放到文件最後,刪除文件前面的信息,文件最多10行,這個代碼並不複雜,你應該會寫的。
刷新框隱藏不顯示,反覆刷新,每次刷新後把獲取的內容提交給消息框,例如刷新框的代碼可以如下:
script type=text/javascript
?php
foreach (file(‘chat/chat.txt’) as $line){
list($id,$from,$to,$msg)=explode(‘|’,$line);
echo “msg_frame.add_msg($id,’$from’,’$to’,’$msg’);\r\n”;
//注意:msg_frame是消息框的名稱。
}
?
/script
消息框不刷新,編寫一個添加消息的函數,等著刷新框來調用,例如內容如下:
div id=msg/div
script type=text/javascript
var maxid=0;
function add_msg(id,from,to,msg){
if (idmaxid) {
maxid=id;
if (to==”) to=’大家’;
s=’p’+from+’對’+to+’說:’+msg+’/p’;
document.getElementById(‘msg’).innerHTML+=s;
}
}
/script
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/244166.html