导航:首页 > 编程语言 > php聊天室开源

php聊天室开源

发布时间:2024-09-22 04:21:27

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+MySQL搭建一个聊天室

MySQL并发能力强 响应速度快 是性能优异的数据库软件;PHP是功能强大的服务器端脚本语言 笔者在山西铝厂网站开发中 采用PHP +MySQL 建立了多种应用 下面 以一个简单的聊天室设计为例 介绍PHP+MySQL在网页开发中的应用

总体设计

构思与规划:

聊天室的基本原理 就是把每个连上同一网页的用户传送的发言数据储存起来 然后将所有的发言数据传给每一用户 也就是说 用数据库汇集每个人的发言 并将数据库中的数据传给每一个人就实现了聊天室的功能

表设计

首先使用MySQL建立表chat用来储存用户的发言:

mysql> CREATE TABLE chat > (chtime DATATIME > nick CHAR( ) NOT NULL >words CHAR( ));

表中只设定了三个域 chtime是发言的时间 nick为发言者的昵称 words是发言的内容 发言最多 个字符

网页设计

一个最简单的聊天室通常需要两个页框:一个页框是用户输入发言的表单 另一个用来显示大家的发言 所以代码段通常至少需要如下几段:

建立页框的结构(main php)

显示大家发言的程序段(cdisplay php)

传送用户发言的程序段(speak php)

用户登录进入聊天室程序段(login php)

代码设计

以上规划完成后 就可以着手代码设计了 采用php可以非常简明实现以上的功能

用户登录login php 本段代码是一个完全HTML网页

<> <head> <title>用户登录</title> </head> <body>请输入您的昵称<br> <form action= main php method= post target= _self > <input type= text name= nick cols= > <input type= submit value= 登录 > </body> </>

用户提交自己的昵称后 就进入到聊天室 以下的处理交由main php处理

页框主体代码段main php:

<? setcookie( nick $nick) //用cookie记录用户昵称 是常用的传递变量方法 ?> <> <title>山西铝厂聊天室试用版ver </title> <frameset rows= % * > <frame src= cdisplay php name= chatdisplay > <frame src= speak php name= speak > </frameset> </>

显示发言cdisplay php

本代码段的任务是将表chat中的数据取出 显示在页框中 每次刷新时 取数据库中最近的 条发言 同时 为防止数据库无限增大 需设计删除陈旧数据的功能 代码如下

<> <head> <title>显示用户发言</title> <meta equiv= refresh content= ;url=cdisplay php > </head> <body> <? $link_ID=mysql_connect( main root ); //链接Mysql服务器 服务器名为main 管理员名为root mysql_select_db( abc ); //选择数据库 $str= select * from chat ORDER BY chtime; ; //查询字符串 $result=mysql_query($str $link_ID); //送出查询 $rows=mysql_num_rows($result); //取得查询结果的记录笔数 //取得最后 笔发言 并显示 @mysql_data_seek($resut $rows ); //移动记录指针到前 笔记录 if ($rows< ) $l=$rows; else $l= ; //记录总数小于 则最多为该记录数 for ($i= ;$i<=$l;$i++) { list($chtime $nick $words)=mysql_fetch_row($result); echo $chtime; echo ;echo $nick; echo : ; echo $words; echo <BR> ; } //清除库中过时的数据 @mysql_data_seek($result $rows ); //移动记录指针到前 笔记录 list($limtime)=mysql_fetch_row($result); $str= DELETE FROM chat WHERE chtime< $limtime ; ; $result=mysql_query($str $link_ID); //送出查询字符串 库中只留前 个记录 mysql_close($link_ID); ?> </body> </>

送出发言到数据库speak php

<> <head> <title>发言</title> </head> <body> <? If ($words) { $link_ID=mysql_connect( main root ); mysql_select_db( abc ); //数据库名为abc $time=date(y) date(m) date(d) date(h) date(i) (date(s); //取得当前时间 $str= INSERT INTO chat(chtime nick words) values ( $time $nick $words ); ; mysql_query($str $link_ID); //送出发言到数据库 mysql_close($link_ID); } ?> //输入发言的表单 <form action= speak php method= post target= _self > <input type= text name= words cols= > <input type= submit value= 发言 > </form> </body> </>

lishixin/Article/program/PHP/201311/21516

⑶ 搭建一个聊天室用什么语言好PHP可以吗

可以,有很多开源系统可以利用的,不一定要自己从头写!
参考资料里面有介绍一些开源的PHP聊天室程序!

阅读全文

与php聊天室开源相关的资料

热点内容
eds是什么服务器 浏览:457
半圆命令键 浏览:443
linux文件系统实现 浏览:853
cadchange命令 浏览:325
电脑图谱源码大全 浏览:753
dos系统下命令 浏览:524
运维狗和程序员 浏览:707
哪个APP看纸牌屋 浏览:555
外卖领券app哪个最好买 浏览:313
linux中文字体包 浏览:753
git命令行建分支 浏览:848
致信服务器地址和端口要怎么找 浏览:983
android图片文件压缩 浏览:894
腾讯云使用云服务器访问外网 浏览:166
运用算法模型给数据打标签 浏览:745
云服务器没有数据盘 浏览:812
简洁php论坛 浏览:729
复制跳转微信源码 浏览:608
crc16计算法 浏览:417
单片机65 浏览:546