php+layui实战,做一个轻社区

本来业务需要搭建一个轻社区,本着这个方向做了些低成本实现的调研,最终选择了layui作为前端模板,这样一个后端研发同学就可以轻松搞定了。顺便实现了个练手站。

先看版块:

目前设计的版块,包含文章,问答,圈子,用户级级别,身份,密码找回,邮箱激活等等。

基础框架:

  1. 前端layui,面相dom,响应式,有条件的可以支持双端,后端程序员比较容易接受。
  2. 后端 codeigniter4 ,框架比较轻,也提供Hook,自己可以针对需要去需改,符合预期。
  3. 数据组件,Mysql+redis

牵扯到的功能和应用的组件:

  1. 文章发布,富文本编辑器使用的是summernotejs,支持较好,扩展了emoji表情包
  2. 单页面效果,为了贴合seo,尽量的减少了ajax的请求,同时为了满足模块化需求,使用了smarty+laytpl,来实现html的模块化交互。
  3. 图片的预览 使用了viewerjs,可以支持图片的放大,旋转,轮转,效果大家可以去小站看,站点位置 https://www.nanshandu.com
  4. 文章的抓取,使用的queryList,有点强大吧,支持php-query选择器,支持动态渲染数据爬取。
  5. 文章仿写,尝试结巴分词,但是效果我觉得不怎么样,至少php版的不怎么样,尝试仿写能能力,根据词频和词性去做处理,可能是字典不够强大,所以部分语句还不是很通顺。阶段性放弃,等有时间了会尝试nlp方案。
  6. 文章敏感词处理,使用的php-dfa-sensitive 方案包。
  7.  xss注入,使用的voku/anti-xss,这里面默认了一批安全html标签,可以根据自己实际需求定制,引入到ci4中更方便。

现在站点搭建在自己的测试服务器中,因为没备案,所以是香港服务器。

关于墙机制,目前是尝试的session方案,来区别人机。以上就是整站的具体方案了。目前没什么继续开发的欲望了,后期如果有新的技术或想法会继续追加功能。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
实现 layui 表格导入和导出 Excel 的后端代码可以参考以下示例: 导出 Excel: ```php <?php //连接数据库 $conn = mysqli_connect("localhost","root","","test"); //查询数据 $sql = "SELECT * FROM users"; $result = mysqli_query($conn, $sql); //引入PHPExcel库 require_once './PHPExcel/PHPExcel.php'; //创建PHPExcel对象 $objPHPExcel = new PHPExcel(); //设置表头 $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'ID'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B1', '姓名'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C1', '年龄'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D1', '性别'); //循环输出数据 $i = 2; while ($row = mysqli_fetch_array($result)) { $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $i, $row['id']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B' . $i, $row['name']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C' . $i, $row['age']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D' . $i, $row['sex']); $i++; } //设置文件名和下载方式 $filename = '用户信息.xlsx'; header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="' . $filename . '"'); header('Cache-Control: max-age=0'); //输出Excel文件 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); //关闭连接 mysqli_close($conn); ?> ``` 导入 Excel: ```php <?php //连接数据库 $conn = mysqli_connect("localhost","root","","test"); //引入PHPExcel库 require_once './PHPExcel/PHPExcel.php'; //获取上传的Excel文件 $file = $_FILES['file']['tmp_name']; //创建PHPExcel对象 $objReader = PHPExcel_IOFactory::createReader('Excel2007'); $objPHPExcel = $objReader->load($file); //获取当前工作表 $sheet = $objPHPExcel->getSheet(0); //获取最大行数和列数 $highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); //循环读取数据 for ($i = 2; $i <= $highestRow; $i++) { $rowData = $sheet->rangeToArray('A' . $i . ':' . $highestColumn . $i, NULL, TRUE, FALSE); //插入数据到数据库 $sql = "INSERT INTO users (name, age, sex) VALUES ( '" . $rowData[0][1] . "', '" . $rowData[0][2] . "', '" . $rowData[0][3] . "' )"; mysqli_query($conn, $sql); } //关闭连接 mysqli_close($conn); //跳转到列表页面 header("Location: list.php"); ?> ``` 注意:上述代码中,需根据实际情况修改数据库连接信息、Excel 文件路径和表格列名等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南山渡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值