这是一个简单的用PHP设计的聊天室程序,目的是通过这个程序让大家熟悉PHP如何处理表单数据的!

这个经过精心设计的web聊天室使用了从表单传递过来的变量,并且把它们处理为HTML ,然后将其写入文件。把表单和信息文件放在一个框架中,你可以看到它与一个叫BeSeen的聊天室很象。当然它的好处在于, 我们的聊天室比起它的BeSeen堂兄弟来说要聪明一些。

Name :

Message :

上面就是基本的用于输入的表单。你可能想把它弄得更美观一些,但是不管出于什么目的,这个就是你要处理的。它发送两个变量给chat.php3,分别叫做$name和$message。

不过,在处理那些变量之前,我们需要从消息文件中把当前的内容取出来,否则在一个时间里我们只能看到一条消息了。几乎没有一个方法可以管理对话。只有象我一样对自已的消息文件的结构很熟悉,我就知道每一条消息都以一个回车符结束。这就是说,可以使用file()函数来将消息文件读到一个数组中去。

消息文件有12行。在12行中,第1行为头信息,第2行到11行为旧的消息,第12行包含了我的脚标。

我最感兴趣的是得到一个能够包含所有那些旧消息的字符串。

在处理字符串的时候,我将for循环的$counter初始化为1而不是0。这是因为我知道$message_array 数组的第0个元素包含的是我的头信息,我不需要它。而且,通过设置循环结束条件为$counter < 10,意思是只有数组中1到9的元素被读到字符串中。对于剩下的两个元素,第11个包含我的脚标,第10个包含的是最旧的消息。这两个我都想删除,因为在任何时刻我只让屏幕显示10条消息。修改$counter < 10 表达式,可以允许你改变所包含消息的数量。

现在已经有了旧的消息,接着我想生成新的消息。我们已经有了两个变量:$name 和$message,所以写出一个新的消息就很容易了。

我们就快要写好消息文件了。剩下需要的就是头信息和脚标。先加入简单的头部信息:

";

?>

我们想让消息屏幕能够自动刷新,那么人们就可以看到新的贴子了。我没有使用JavaScript,而是采用了META标记进行刷新,主要是因为它可能更容易被客户端支持。我也不想让搜索引擎对我的消息文件进行索引。所以重新定义头信息为:

".

"".

" ";

?>

在文件的脚标处,我一般是放置一小段版权信息,还有与打开的头信息对应的结束标记。

".

"© Mike Hall 2000";

?>

将版权信息用包起来表示只有被选中它才会被看见,因为它的颜色与背景色#000000一样。这样做的目的只是为了不让它影响显示。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php聊天室系统,PHP教程实例:用PHP打造动态聊天室系统相关推荐

  1. 重装Win10系统有教程吗?如何在线一键重装Win10系统?

    重装Win10系统有教程吗?如何在线一键重装Win10系统?相信很多小伙伴们都知道在电脑卡顿的时候可以选择重新安装系统的方法,但是不是很清楚如何具体的操作.系统之家装机大师是一款非常好用的,如何小伙伴 ...

  2. 计算机启动盘安装教程,笔记本系统重装教程,笔记本电脑u盘启动盘装系统教程...

    笔记本系统重装和台式机的重装原理和过程基本都是一样的,只要你拥有一个U盘启动盘且已经有要重装的系统,就可以将笔记本系统进行重装.需要注意的是笔记本有专门针对笔记本优化的系统,如果直接用的台式机的系统安 ...

  3. 易语言单窗口单ip教程_金蝶K/3ERP系统应用教程:生产任务单下达的对系统数据的影响...

    金蝶K/3ERP系统应用教程:生产任务单下达的对系统数据的影响 关注我,我将定期分享更多的ERP解决方案 如果您喜欢且觉得内容有用,请点击分享转发 如果你有什么关于ERP系统的问题和疑问,可私信联系我 ...

  4. 我的世界服务器怎么用系统说话,我的世界语音聊天Mod安装使用教程_我的世界语音聊天Mod怎么安装使用_玩游戏网...

    <我的世界>语音聊天mod给游戏增加了语音功能,让联机的玩家可以直接用语音聊天,服务器也可以用此mod让玩家交流更方便,这里给大家带来<我的世界>语音聊天Mod安装使用教程,感 ...

  5. ES系统封装教程 高级进阶版 提供Wind7,xp系统下载 (by 星空武哥)

     重新改了一下,由于一些地址链接有问题,现在所有下载软件都已经没问题了. 欢迎访问我的博客http://blog.csdn.net/lsyz0021 ES系统封装教程 高级进阶版,提供我自己封装的Wi ...

  6. linux最小系统 安装教程,Linux 学习笔记 1 使用最小的系统,从分区安装系统开始,...

    Linux 学习笔记 1 使用最小的系统,从分区安装系统开始, 我们常用的linux系统在安装过程中大多都省略了对系统进行分区的操作,以至于后期,不了解什么是分区以及分区当中最基本的一些概念, 我们不 ...

  7. linux androidx86双系统,实用教程:PC实现Windows/原生安卓双系统

    前段时间小编买到一台Lumia 640,Lumia Denim的固件,特别流畅,这使我突然萌生出一个想法,要不,我先放下一直被我当成主力的小米4,体验一下只有Lumia的生活? 随即问题来了,在WP8 ...

  8. 超详细教程windows系统还原教程 win10 win7 64bit、32bit优盘做系统教程

    win10 win7 64bit.32bit优盘做系统教程 一.制作优盘启动盘 1.1 下载ventoy软件 1.2 下载杏雨梨云镜像 二.下载windows镜像 2.1 使用MSDN网站下载wind ...

  9. 嵌入式系统开发教程 - 创新课程设计- “AI人脸识别+扩展系统”

    文章目录 前言 一.人脸识别功能如何实现 二.快递柜的软件系统 三.人脸测温 四.树莓派简介 五.电路原理图与PCB布线图 总结 前言 这里只是一些网上资料的合集,具体的设计方案需要各位结合项目情况考 ...

  10. 微信点餐系统java教程_构建微服务微信点餐系统教程

    凡是认购学员提供全部的问题解答,有问题请大家私信提出问题. 微服务是目前行业的热门技术架构,随着移动互联网愈演愈烈,微信支付和外卖成为人们的**,为了让广大技术爱好者学习微服务架构和业务结合,从而研发 ...

最新文章

  1. 多伦多大学2020春季CSC311课程「机器学习导论」课件PPT
  2. LeetCode第九题—— Palindrome Number(判断回文数)
  3. linux网络配置答案,Linux网络配置与管理作业3答案.doc
  4. 有什么办法动态更改yml的值吗_基于Redis实现Spring Cloud Gateway的动态管理
  5. python中while语句的用法_python 使用while循环输出*组成的菱形实例
  6. 轻松理解Spring框架的基本思想
  7. 哪个Linux发行版运行kvm,如何在Linux发行版上安装和配置KVM和Open vSwitch
  8. 不过确实setNString 也可以解决这个??问题,但是解决不了模糊匹配问题 原因不清楚...
  9. pythonqt项目_Qt项目之高亮关键字Python编辑器实现
  10. Python核心编程(第三版)课后习题解答——第二章
  11. 解决Vsphere Client 60天过期问题
  12. MATLAB机械动力分析,用MATLAB实现机械动力学
  13. 《游戏引擎架构》信息总汇
  14. paddlepaddle波士顿房价预测
  15. system/app 下 精简程序
  16. HDU 4960:Another OCD Patient
  17. Git三大特色之Stage(暂存区)
  18. internet协议dns服务器地址,DNS服务器配置使用 及全国DNS地址大全
  19. python发送短信验证码登录_python发送短信验证码
  20. 「禾连健康」轻松实现弹性降本20%以上,竟然是因为使用了它

热门文章

  1. 模拟幅度调制系统抗干扰性能仿真分析
  2. 信息系统管理师备考指南
  3. Java实现国密算法SM2,SM3,SM4,并且实现ECB和CBC模式
  4. Deap框架—结合demo进行学习
  5. 网店宝贝复制专家操作手册
  6. Materials Studio多层聚合物的构建及data文件导出
  7. H5页面,华为手机打开不加载JS的问题
  8. 苹果手机键盘html代码大全,iPhone拨号键盘中的*和#有什么作用 iPhone特殊代码分享...
  9. 华硕 小布 类似机器人_盘点足球赛事背后的高科技 华硕机器人小布化身观赛助理...
  10. 层次分析法原理和matlab代码