php实现网站留言板功能,php实现留言板

我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的

畅言留言板样式:

网易跟帖样式:

原理

需要在评论表添加两个主要字段 id 和 pid ,其他字段随意添加,比如文章id、回复时间、回复内容、回复人什么的。

其中pid就是当前已经回复过的评论的id。

从上图可以看出,里面每一层的pid就是就是他上一层评论的id。仔细观察下上面的布局。是不是很像PHP中的多维数组?如果你能想到,那么就简单了。

实现方法1.前台:这个比较简单 就是p嵌p。然后设置p的border和margin padding就行了

2、后台 :用到了两次递归,首先用递归把数据库中的结果重组下,重组之后,然后用递归输出上面的那种前台代码即可comment表结构和内容如下

然后直接读出这个表中的所有评论。可以得到如下数组

Array

(

[0] => Array

(

[id] => 1

[pid] =>

[content] => 评论1

)

[1] => Array

(

[id] => 2

[pid] =>

[content] => 评论2

)

[2] => Array

(

[id] => 3

[pid] =>

[content] => 评论3

)

[3] => Array

(

[id] => 4

[pid] => 1

[content] => 评论4回复评论1

)

[4] => Array

(

[id] => 5

[pid] => 1

[content] => 评论5回复评论1

)

[5] => Array

(

[id] => 6

[pid] => 2

[content] => 评论6回复评论2

)

[6] => Array

(

[id] => 7

[pid] => 4

[content] => 评论7回复评论4

)

[7] => Array

(

[id] => 8

[pid] => 7

[content] => 评论8回复评论7

)

[8] => Array

(

[id] => 9

[pid] => 8

[content] => 评论9回复评论8

)

[9] => Array

(

[id] => 10

[pid] => 8

[content] => 评论10回复评论8

)

)

然后我们就需要把这个数组重组成上面的那种留言板形式的

其中$array就是上面读取出来的数组,首先取出pid默认为空的,然后递归,在取出pid为当前评论id的数组

public static function tree($array,$child="child", $pid = null)

{

$temp = [];

foreach ($array as $v) {

if ($v['pid'] == $pid) {

$v[$child] = self::tree($array,$child,$v['id']);

$temp[] = $v;

}

}

return $temp;

}

重组后,可以得到下面的这个数组,可以看到,这个数组的样式已经和前台评论样式很像了

Array

(

[0] => Array

(

[id] => 1

[pid] =>

[content] => 评论1

[child] => Array

(

[0] => Array

(

[id] => 4

[pid] => 1

[content] => 评论4回复评论1

[child] => Array

(

[0] => Array

(

[id] => 7

[pid] => 4

[content] => 评论7回复评论4

[child] => Array

(

[0] => Array

(

[id] => 8

[pid] => 7

[content] => 评论8回复评论7

[child] => Array

(

[0] => Array

(

[id] => 9

[pid] => 8

[content] => 评论9回复评论8

[child] => Array

(

)

)

[1] => Array

(

[id] => 10

[pid] => 8

[content] => 评论10回复评论8

[child] => Array

(

)

)

)

)

)

)

)

)

[1] => Array

(

[id] => 5

[pid] => 1

[content] => 评论5回复评论1

[child] => Array

(

)

)

)

)

[1] => Array

(

[id] => 2

[pid] =>

[content] => 评论2

[child] => Array

(

[0] => Array

(

[id] => 6

[pid] => 2

[content] => 评论6回复评论2

[child] => Array

(

)

)

)

)

[2] => Array

(

[id] => 3

[pid] =>

[content] => 评论3

[child] => Array

(

)

)

)

得到上面的数组后 ,再用递归输出即可

public static function traverseArray($array)

{

foreach ($array as $v) {

echo "

";

echo $v['content'];

if ($v['child']) {

self::traverseArray($v['child']);

}

echo "";

}

}

然后即可看到

原理就是这样,就是重组下数组,然后遍历输出就行了。

以上就是php实现畅言留言板和网易跟帖样式的全部过程,大家也可以尝试进行创新,希望这篇文章对大家的学习有所帮助。

www.bkjia.comtrueTechArticlephp实现网站留言板功能,php实现留言板 我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的 畅…

php网站留言,php实现网站留言板功能,php实现留言板_PHP教程相关推荐

  1. html如实现留言板功能,JS实现留言板功能[楼层效果展示]

    功能实现: 1.发布人和发布内容非空校验 2.编辑删除功能 3.楼层效果展示 4.发布时间展示 效果图 目录 tools.js 时间工具包 function getTime(){ var weeks ...

  2. html如实现留言板功能,JS实现留言板功能

    每天一个JS 小demo之留言板.主要知识点:DOM方法的理解和运用 Document .wrap { width: 400px; margin: 30px auto; } textarea { di ...

  3. android中留言板功能,js 实现简易留言板功能

    无标题文档 li{list-style:none;} li{position:relative;width:500px;} a{position:absolute;right:10px;} var c ...

  4. bios如何设置关闭触控板功能?

    笔记本触控板能够更好地实现人机互动的体验感,被广大用户所使用,不过在日常操作笔记本的时候,触控板打字容易导致误操作,那么我们该如何关闭触控板呢?在这里给大家分享如何在bios关闭触控板功能. 1.开机 ...

  5. 51单片机 | 如何学习单片机 | 开发板功能介绍 | 开发板使用方法 | 51单片机介绍

    文章目录 一.如何学习单片机 1.学习哪种类型的单片机 2.学习单片机的最佳方法 3.学习单片机的准备工作 4.学习单片机的常见疑问 二.开发板功能及使用介绍 1.开发板功能介绍 2.开发板使用方法 ...

  6. html留言板 php,linux下使用Apache+php实现留言板功能的网站

    一.首先我们的linux服务器上要安装Apache和php php的安装方法和Apache方法如同一辙 二.关闭防火墙服务,关闭selinux 请参考:http://www.cnblogs.com/d ...

  7. Java实战 SpringBoot 网站开发 留言管理、网站后台留言管理模块、后台网站用户运营数据管理开发。

    <QA不加班 > 前言 Java SpringBoot 网站实战开发 留言管理.网站后台留言管理模块.后台网站用户运营数据管理开发. Java 网站开发网站运营后台管理和用户留言板功能后端 ...

  8. php mysql实现办公留言系统_传智播客html css php+mysql实现办公留言系统 呱呱网站源代码实例讲解...

    php教程 当前位置:主页 > php教程 > 传智播客html css php+mysql实现办公留言系统 呱呱网站源代码实例讲解 传智播客html css php+mysql实现办公留 ...

  9. phpcms留言板功能的实现

    文章目录 phpcms如何```实现留言板```功能? 1. 留言板插件下载 及 使用说明: 2. 解压并安装 3. 代码调用教程 4. 参考代码1:(附图) 5. 参考代码2:(附图) 6. 后台接 ...

最新文章

  1. openstack高可用方案
  2. Spring+SpringMVC+MyBatis深入学习及搭建(十)——MyBatis逆向工程
  3. 5、Java并发性和多线程-相同线程
  4. 单应矩阵(Homography)基本概念和代码测试
  5. Java实现简易的文件的迁移器
  6. 狭义上讲侠义计算机安全,狭义的会计电算化是什么
  7. 10个最佳jQuery Lightbox效果插件收集
  8. Jquery+CSS Input file 文本框轻美化
  9. python练手经典100例-非常适合Python菜鸟练手的趣味题(内附学习教程分享)
  10. java中的函数指的是,函数式接口在Java中是指有且仅有一个抽象方法的接口。( )...
  11. DeepFake技术--win7下faceswap环境配置(一)(二)(三)
  12. 高中会教师证有计算机专业吗,教师资格证 --高中信息技术篇
  13. SonarQube代码审查工具
  14. 纯真ip数据库 linux,Python读取纯真IP数据库
  15. 大连理工大学电路计算机,大连理工大学电路计算机辅助分析实验报告精要.pdf...
  16. w10安装ubuntu_记 Win10 + Ubuntu 双系统安装
  17. 病毒木马查杀实战第011篇:QQ盗号木马之专杀工具的编写
  18. 软件设计测试过程术语BD FD DD
  19. HDOJ 4622 Reincarnation (hash)
  20. android系统 通知管理,告别打扰 Android系统的通知管理

热门文章

  1. 【SA】JAVA语言程序设计 C4-C5
  2. QQ2010的个人文件夹结构
  3. 申请iOS的IPD开发者帐号(企业$99)2014版流程(含邓白氏D-U-N-S码流程)
  4. 计算机班班会课教案,计算机班运动会总结主题班会ppt课件.ppt
  5. Understand使用方法(转载!
  6. 美国第三季GDP表现好于预期 现货黄金再度上破1800美元关口
  7. 本科比专科计算机技术强,专科就没前途?这四个专业的专科生,比本科生还抢手!...
  8. 用Java 编写菜单价格和的程序_Java程序设计基础作业目录(作业笔记)
  9. java和js中判断两个字符串是否相等对比
  10. 【观察】星环科技:布局行业大模型赛道,加速国产化替代进程