thinkphp 搭建Workerman聊天

要在 ThinkPHP 框架中搭建基于 Workerman 的聊天室应用,可以按照以下步骤进行。Workerman 是一个高性能的 PHP 网络通信框架,非常适合用于实现 WebSocket 服务器。以下是一个简单的实现步骤:1. 环境准备确保你的开发环境满足以下要求:PHP 版本 >= 7.0安装了 Composer安装了 ThinkPHP 框架2. 安装 Workerman首先,在你的 ThinkPHP 项目根目录下使用 Composer 安装 Workerman:composer require workerman/workerman3. 创建 WebSocket 服务在 a...

PHP,ThinkPHP,随笔 2024-11-26 PM 37℃ 1条

Thinkphp 怎样导出大数据到Excel

在 ThinkPHP 中导出大数据时,直接从数据库中查询所有数据并一次性导出可能会导致内存占用过高,甚至导致服务器崩溃。为了解决这个问题,可以采取分批导出、队列和文件流等技术来优化大数据导出过程。1. 分批查询并导出分批查询并导出可以有效减少内存占用,每次只从数据库中查询一部分数据,处理并写入到导出文件中。以下是一个常见的处理流程,假设要导出 CSV 文件:示例:分批导出 CSVuse think\facade\Db; // 设置导出文件名 $fileName = 'export_' . date('YmdHis') . '.csv'; // 打开输出缓冲区并准备写入文件 $fp =...

ThinkPHP,随笔 2024-11-26 PM 48℃ 0条

Thinkphp多表查询

在 ThinkPHP 中,多表查询通常涉及使用联表查询(JOIN)或者多个模型关联查询。ThinkPHP 提供了多种方式来实现多表查询,包括使用原生 SQL、查询构造器以及模型关联。以下是几种常见的多表查询方式:1. 使用查询构造器的 join 方法ThinkPHP 提供了 join 方法来实现多表查询。你可以通过查询构造器指定需要联表的表和条件。假设有两个表:user(用户表)order(订单表)我们想要查询每个用户的订单信息。可以使用以下方式:$data = Db::name('user') ->alias('u') // 给 user 表设置别名 ...

ThinkPHP 2024-11-26 PM 34℃ 0条

php常用的bc函数

bcadd — 加法,2个任意精度数字的加法计算bcsub — 减法bcmul — 乘法bcdiv — 除法bcpow — 乘方bcmod — 取模bcsqrt — 求二次方根bccomp — 比较两个任意精度的数字,返回一个整数的结果:若两数相等返回0,左数大返回1,否则返回-1bcpowmod — 求高精度数字乘方求模,数论里非常常用bcscale — 设置所有bc数学函数的默认小数点保留位数 — 比较两个高精度数字,返回-1, 0, 1

PHP 2023-04-26 AM 1539℃ 2条

宝塔 Nginx被挂马症状以及解决方法

事件经过最近宝塔面板疑似出现重大安全漏洞。遭到攻击的服务器,Nginx会自动检测header中accept字段是否包含Gzip。如果包含,则会向目标页面中加入一段JS引用,以下两张图来自 HostLoc 中的一篇帖子:未开启Gzip开启Gzip深度剖析(1)JavaScript代码解析插入的这段JS,可以通过解码获得,原文为以下内容:var _0xd4d9=["\x67\x65\x74\x4D\x69\x6E\x75\x74\x65\x73","\x73\x65\x74\x4D\x69\x6E\x75\x74\x65\x73","\x63...

环境&配置,随笔 2023-04-23 PM 1556℃ 4条

推荐导出组件chenvle/easy_excel

1、安装composer require chenvle/easy_excel2、使用例子use Chenvle\EasyExcel\EasyExcel; $excel = new Excel(); /*导入*/ $var = [ 'A' => ['key' => 'username', 'title' => '姓名'], 'B' => ['key' => 'phone', 'title' => '电话'], 'C' => ['key' => 'origOrderId', 'title' => '订单号']...

PHP 2023-03-29 AM 1507℃ 6条

ThinkPHP6.1 移除了Filesystem,有效的替换方法

V6.1.0(2022年10月26日)移除核心对think-filesystem库的依赖在ThinkPHP6.1 发布以后,移除·Filesystem类库,文件上传无法使用,但是thinkFile 依旧有进行保留,可以使用thinkFile 代替进行文件操作,文件上传代码如下方法一:自己封装common.php 通用方法if (!function_exists('fileUpdate')) { function fileUpdate ($file,$save_url = './upload/') { $fileInfo = pathinfo($file)...

ThinkPHP 2022-11-07 PM 1871℃ 3条

think-queue 消息队列

安装think-queue 组件composer require topthink/think-queue配置文件/config/queue.php<?php return [ 'default' => 'redis', 'connections' => [ 'sync' => [ 'type' => 'sync', ], 'database' => [ 'type' => 'database', ...

PHP,ThinkPHP 2022-11-04 PM 1943℃ 2条