PHP怎样开发聊天室

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP怎样开发聊天室相关的知识,希望对你有一定的参考价值。

可以看下socket类型的php框架,比如swoole和workerman,workerman下面有个
workerman-chat PHP聊天室和PHP小蝌蚪聊天室的demo可以下载源码参考参考
参考技术A 长轮询或者websocket

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
参考技术A 你可以用workerman框架来做。

以上是关于PHP怎样开发聊天室的主要内容,如果未能解决你的问题,请参考以下文章

php操作mongoDB数据库查询的时候怎样写“或”这样的多个条件查询代码?

使用 Swoole 扩展和PHP 开发的在线聊天室

php-GatewayWorker搭建实时聊天室

zphp,swoole开发chat聊天室

php即时聊天源码哪家厂商有?

需要开发一个 PHP - 基于 Jabber 的聊天工具