• 技术文章 >后端开发 >php教程

    仿iPad界面的在线群聊

    2016-07-25 09:01:36原创852
    web在线群聊(iPad界面) 源码全部在ichat.zip压缩包里
    主要包括三个文件:
    index.php:表单值获取昵称文件,传值给 chat.php文件;
    chat .php :主要文件,获取index.php的传值后,判断是否填写昵称,空则为游客,本页包含聊天内容输入文本框,提交给本页面处理,将聊天记录保存在自动创建的chat.txt文件中,使用iframe调用view.php来显示聊天内容;
    view .php : 按行读取chat.txt文件的内容,逆序输出,每间隔20s自动刷新
    待改进方面:(本人新手,正在学习中
    1.防刷新机制
    2.读取内容应该用ajax
    演示地址:http://qhbbs.tk/
    1. /*创建会话,判断是否填写昵称,没有则为游客*/
    2. session_start();
    3. if(isset($_SESSION['views']))
    4. $_SESSION['views']=$_SESSION['views']+1;
    5. else
    6. $_SESSION['views']=1;
    7. if($_SESSION['views']==1)$_SESSION['username']=$_POST['user'];
    8. if(!$_SESSION['username'])$_SESSION['username']="游客";
    9. if($_POST['user'])$_SESSION['username']=$_POST['user'];
    10. $user=$_SESSION['username'];
    11. $words=$_POST['words'];//聊天内容赋值
    12. if(empty($words))exit;
    13. savechat($words,$_SESSION['username']);//保存聊天内容
    14. /*以下为保存聊天内容函数*/
    15. function savechat($msg, $user)
    16. {
    17. $date=date('H:i:s',time());
    18. $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
    19. if (!$fp=fopen("$DOCUMENT_ROOT/chat.txt",'a+')) {
    20. die('创建聊天记录文件失败, 请检查是否有权限.');
    21. }
    22. $msg = htmlspecialchars($msg);
    23. $msg = preg_replace('/([httpftp:\/\/])*([a-zA-])+\.([a-zA-Z0-9_-])+\.([a-zA-Z0-9_-])+(a-zA-Z0-9_)*/', '\\0', $msg);
    24. $msg = preg_replace('/([a-zA-Z0-9_\.])+@([a-zA-Z0-9-])+\.([a-zA-Z0-9-]{2,4})+/', '\\0', $msg);
    25. $msg ='['.$date.']'."\t".$user.":".$msg."\n";
    26. if (!fwrite($fp, $msg)) {
    27. die('写入聊天记录失败.');
    28. }
    29. fclose($fp);
    30. }
    31. ?>
    复制代码
    1. $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
    2. $fp=fopen("$DOCUMENT_ROOT/chat.txt",'a+');
    3. if(!$fp){
    4. echo "

      Didn't write chat log in chat.txt.Please try say again.

      ";
    5. exit;
    6. }
    7. $handle=$fp;
    8. $temp_arr=array();
    9. do
    10. {
    11. $file=fgets($handle,1024);
    12. $temp_arr[]=$file;
    13. }
    14. while(!feof($handle));
    15. fclose($handle);
    16. krsort($temp_arr);//逆序
    17. foreach($temp_arr as $value){
    18. echo "".$value.""."
      ";
    19. }
    20. ?>
    复制代码
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:仿iPad界面的在线群聊
    上一篇:php+shell检测文件类型 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 一起聊聊PHP session共享的四种解决方案• PHP底层的运行机制与原理_PHP教程• 说一说PHP程序开发中的模板选择_PHP• 程序修改有关问题• js表单提交解决方法
    1/1

    PHP中文网