- 博客(297)
- 收藏
- 关注
原创 tp8结合Intervention Image(libvips)生成缩略图
libvips结合PHP 8.3 FFI实现高效低内存图像处理,性能超越GD与Imagick。通过Intervention Image配合vips-driver,可轻松实现等比缩放、WebP编码等操作。本文演示了使用libvips在Laravel中按高度缩放图片并保存为高质量JPEG的完整流程,具备高效率、低资源占用优势,适用于大图处理场景。
2026-10-05 17:37:52
196
原创 Debian 13 / 宝塔 PHP 8.3开启 FFI 完整实战教程
在Debian13宝塔环境(PHP 8.3.31)下,通过复用现有源码目录/www/server/php/83/src/ext/ffi,使用phpize与php-config精准匹配编译环境,独立编译生成ffi.so扩展。经验证libffi-dev已安装且配置正确,无需重编整套PHP。编译后将ffi.so安装至扩展目录,修改php.ini启用extension=ffi及ffi.enable=true,最终在CLI与PHP-FPM中均成功加载并验证FFI功能,实现无侵入式扩展集成。
2026-10-05 17:29:44
218
原创 debian13安装meson和libvips
在Debian13上通过源码编译安装Meson1.7.0、Ninja1.12.1及GCC14.2.0,配置前缀为/usr/local。使用Meson构建libvips 8.18.7,指定--prefix=/usr/local --libdir=lib --buildtype=release,确保vips命令位于/usr/local/bin,动态库在/usr/local/lib,并支持多种图像格式。
2026-10-05 17:10:00
189
原创 thinkphp8模版的应用小技巧1
该页面使用Layui 2.13框架实现单行选择框,通过PHP获取分类数据并动态渲染下拉选项。后端通过Db::name('category')->select()查询分类列表,传入视图并指定选中项(categoryID=4),前端采用foreach与eq标签实现选项遍历及选中状态绑定,确保页面加载时正确显示默认选项。
2026-10-05 09:21:09
13
原创 Neo4j Community 安全访问配置总结
在CentOS Stream 9上成功部署Neo4j Community 2026.09.0,通过宝塔证书实现HTTPS与Bolt TLS加密。
2026-10-03 10:58:15
300
原创 tp8使用rabbitMQ消息队列的示例
本文介绍了在ThinkPHP8.1框架下集成RabbitMQ的完整实现方案。主要内容包括:1) 使用Composer官方源安装php-amqplib 3.7.4;2) 配置RabbitMQ连接参数;3) 创建RabbitMQ服务类封装连接、发送消息等功能;4) 实现控制器接口接收并发送消息到队列;5) 开发命令行消费者处理队列消息,包含消息确认、异常处理和JSON解析等功能。方案采用多应用模式,提供了完整的配置示例和业务代码,实现了消息生产消费全流程,并考虑了连接管理、异常处理等细节问题。
2026-07-20 08:59:49
266
原创 thinkphp8框架的消息队列应用
本文介绍如何使用ThinkPHP8.1框架的think-queue3.0.12实现微信小程序订单15分钟未支付自动取消功能。文章详细讲解了从环境准备到代码实现的完整流程,包括:1) 数据库表设计(订单表和库存表);2) think-queue安装配置;3) 下单时库存锁定逻辑;4) 延迟队列任务处理未支付订单;5) 支付成功回调处理;6) 宝塔环境部署注意事项。重点说明了如何使用Redis队列实现延迟任务,并通过事务保证数据一致性,同时解决了高并发下的超卖问题。文章还对比了queue:work和queue:
2026-07-13 16:31:55
315
原创 php8.3安装扩展的新方法
本文介绍了从传统pecl安装PHP扩展转向现代化PIE工具的完整流程。针对Debian13环境下gh版本过低问题,提供了详细的gh升级方案:通过官方源安装2.49+版本。特别说明大陆服务器可本地下载pie.phar后上传安装,并给出安装验证步骤。最后以安装phpredis 6.3为例演示PIE用法,强调安装后需重载PHP配置才能生效。全文包含具体命令和路径参考,涵盖从环境准备、工具安装到实际应用的全过程,重点关注版本兼容性和中国地区特殊网络情况的解决方案。
2026-07-13 09:13:38
291
原创 经纬度坐标转换
浏览器定位通常来自设备定位服务,不能仅根据浏览器返回值, 绝对判断它已经属于 GCJ-02。用于签到、围栏、距离判断时, 应明确前端地图服务和接口坐标标准,并由后端重新校验。
2026-07-11 07:39:40
617
原创 利用es2024新特性,图片压缩及上传
本文介绍了在微信内置浏览器中实现图片压缩上传的解决方案。针对移动端大图片(5M以上)上传的需求,提出三步处理流程:1)利用H5新特性实现前端图片处理;2)兼容微信浏览器内核,支持ES新语法并适配低版本浏览器;3)后端接收压缩后的图片保存。核心代码通过Canvas进行图片压缩,采用二分法动态调整质量参数(0.45-0.86)和逐步缩小分辨率(缩放比例从0.9降至0.4),最终将图片转换为WebP格式并控制在5MB以内。方案包含图片预览、格式校验、大小计算和上传功能,特别处理了浏览器兼容性问题,确保在微信环境下
2026-07-04 08:33:48
81
原创 layui2.12版本,table中switch开关的应用实践总结
本文介绍了Layui 2.12版本中表格组件的应用示例。通过定义模板脚本实现状态切换开关功能,包含正常/禁用两种状态显示。当开关状态变化时,使用form.on监听事件,获取当前行数据并发送AJAX请求到后台接口更新状态。文中还提到Layui内置jQuery 3.7版本,并分享了清除缓存、处理JSON数据等实用技巧。该示例展示了Layui表格与表单元素结合使用的典型场景,为开发者提供了状态切换功能的实现参考。
2026-05-10 15:15:27
106
原创 thinkphp8生成海报
本文介绍了一个基于CentOS Stream 9、PHP 8.3和ThinkPHP 8.1环境的海报生成系统实现方案。系统使用Intervention/Image库进行图像处理,主要功能包括:1) 通过createQrCode方法生成指定内容的二维码;2) 通过createCircleAvatar方法将远程头像处理为圆形;3) 使用addNicknameText方法添加用户昵称文字。核心流程整合背景图、二维码、圆形头像和文字信息,最终输出为WebP格式图片。
2026-05-07 15:53:17
136
原创 在php8.3下签到、签退打卡的实现
本文介绍了一个通用的签到/签退方法,基于PHP8.3和Carbon时间库实现。方法接收打卡类型('in'或'out')、规则签到和签退时间作为参数。使用Carbon处理时间计算,通过match语句简化逻辑判断,返回迟到/早退分钟数及状态描述。若打卡类型错误则返回400状态码,成功则返回200状态码及相关打卡数据。该方法可准确计算员工考勤状态,支持灵活的时间规则配置。
2026-03-23 19:29:41
209
原创 thinkphp8.0调用存储过程的
本文介绍了在ThinkORM4.0中调用存储过程的正确方法。通过Db::connect()建立连接后,使用prepare方法准备调用存储过程sp_task_user_check_list,并通过bindValue绑定参数(包括整型和字符串类型)。执行execute后获取结果集,最后必须调用closeCursor关闭游标,否则会导致后续Db构造器报错。这段代码展示了ThinkORM4.0中调用存储过程的关键技巧,特别强调了游标关闭的重要性。
2026-03-11 22:33:35
116
原创 debian 13安装rabbitMQ4.2.x
本文介绍了在Linux系统上安装和配置RabbitMQ消息队列服务的完整过程。首先通过apt-get安装必要的依赖工具,然后添加RabbitMQ官方仓库的GPG密钥和软件源。接着安装Erlang运行环境及RabbitMQ服务器组件,并启动服务。最后创建管理员账户(用户名"admin",密码"123"),赋予管理员权限,并设置对所有虚拟主机的完全配置、写入和读取权限。整个流程涵盖了从软件安装到基本用户管理的完整配置步骤。
2026-02-19 21:58:42
104
原创 centOS stream 9 安装rabbitMQ4.2
在CentOS Stream 9上安装RabbitMQ的推荐方法是使用官方Yum仓库。首先需导入RabbitMQ和Erlang的签名密钥,然后在/etc/yum.repos.d/目录下创建rabbitmq.repo配置文件。安装前需先安装Erlang,然后执行dnf install -y erlang rabbitmq-server安装RabbitMQ。安装完成后,通过systemctl启用并启动RabbitMQ服务。要启用管理面板,运行rabbitmq-plugins enable rabbitmq_ma
2026-01-01 10:51:43
642
原创 thinkphp阿里云获取企业银行开户许可证识别
本文介绍了如何在PHP8.3+ThinkPHP8.0环境下使用阿里云OCR API识别银行账户许可证。通过composer安装alibabacloud/ocr-api-20210707 3.1.3包后,创建Ocr类处理识别请求。核心代码包括:1)配置客户端信息;2)发送识别请求并获取响应;3)处理响应数据,提取银行账号、开户行、公司名称和法人等关键字段。文章还展示了异常处理方式,当识别失败时返回错误信息。最后测试验证了该方案的可行性。
2025-12-22 13:07:28
240
原创 thinkphp8下carbon的使用示例
本文展示了使用Carbon库进行PHP时间处理的几种常见场景:1.设置默认时区为Asia/Shanghai并本地化为中文;2.获取当前时间并格式化输出;3.计算两个时间点之间的差值;4.根据当前时间判断时间段(凌晨、早晨等);5.判断当前时间是否在指定时间范围内(用于报名/打卡等场景)。通过Carbon提供的丰富方法,可以简化日期时间操作,提高开发效率。
2025-12-11 20:49:11
245
原创 debian 12安装postgis3.6
在Debian12系统上安装PostGIS 3.6需要先升级GEOS到3.14版本。首先卸载旧版GEOS,然后下载源码编译安装。安装依赖后,下载PostGIS 3.6源码,配置时指定PostgreSQL路径,编译并安装。最后在数据库中创建PostGIS扩展并验证版本。主要步骤包括:卸载旧GEOS、编译安装GEOS 3.14、安装PostGIS依赖、配置PostGIS编译选项、安装PostGIS扩展。安装完成后可通过SQL查询验证版本信息。
2025-12-05 09:25:53
418
原创 阿里云oss,通过html直接上传
本文介绍了基于ThinkPHP8.1框架实现阿里云OSS V4签名直传文件的方法。前端通过表单提交文件,使用fetch API获取后端生成的签名信息后直接上传至OSS。后端主要实现两个功能:1) 通过阿里云STS服务获取临时凭证,并使用HMAC-SHA256算法生成OSS V4签名;2) 处理OSS回调验证。系统采用前后端分离架构,前端负责文件选择和直传,后端负责签名生成和安全验证,实现了安全高效的文件上传方案,适用于CentOS Stream9/PHP8.3环境。
2025-12-03 20:49:19
891
原创 阿里云视频点播上传获取地址和凭证
本文介绍了使用阿里云视频点播SDK上传视频的实现步骤。首先通过Composer安装SDK依赖包,然后在前端HTML中实现视频上传功能,根据videoId是否存在分别调用创建或刷新上传凭证接口。后端采用ThinkPHP8框架,通过创建Vod客户端实例,实现获取上传凭证(CreateUploadVideo)和刷新凭证(RefreshUploadVideo)两个核心方法,处理视频上传流程。文章提供了完整的代码示例,包括SDK初始化、凭证获取、异常处理等关键环节的实现细节。
2025-12-03 18:39:52
430
原创 thinkphp8.0链接SQL SERVER2022数据库
本文介绍在WinServer2016+PHP8.3+SQLServer2022环境下配置PDO连接SQLServer的步骤:1)安装x64版非线程安全驱动php_pdo_sqlsrv_83_nts_x64.dll;2)开启SQLServer的TCP/IP协议和1433端口并重启服务;3)开放防火墙1433端口;4)修改ThinkPHP的database.php配置文件,设置数据库类型为sqlsrv,配置本地连接参数。完成以上步骤即可实现PHP与SQLServer的连接。
2025-11-26 21:25:03
455
原创 centOS stream 9 升级cURL到8.17版本
为解决CentOS Stream 9系统中cURL 7.66版本过低导致微信API请求失败的问题,编写了自动化升级脚本。该脚本通过源码编译方式安装cURL 8.17.0,支持OpenSSL和HTTP/2协议。主要步骤包括:安装开发工具和依赖库、下载并解压cURL源码、配置编译参数、构建安装,最后验证版本并重启PHP-FPM服务。脚本执行后成功升级cURL版本,解决了微信开发接口的兼容性问题。
2025-11-21 09:03:55
255
原创 thinkphp8微信支付时,金额的精度处理
摘要:代码片段展示了处理支付金额的流程。首先将前端传入的金额转为浮点数,然后使用bcmul函数乘以100转换为分单位(字符串类型),最后强制转换为整数类型以确保符合微信支付接口要求。该过程严格把控金额精度和类型转换,防止支付金额出现误差。核心步骤包括:float类型转换、bcmul精确乘法运算和最终整型强制转换。
2025-06-27 17:19:01
226
原创 thinkphp8.0后台运行实操
摘要:针对调用第三方接口存储上万条数据时浏览器端超时的问题,采用ThinkPHP8自定义指令在服务器端异步处理。创建了多应用模式的hello命令,通过GuzzleHttp获取广告主资金数据并批量入库,避免浏览器超时。使用CentOS Stream9的nohup命令持久运行任务(phpthink hello quwei),将日志输出到runtime/hello.log。区别于宝塔的计划任务/进程守护,该方法避免了数据重复问题,实现了稳定的大批量数据异步处理。
2025-06-17 07:30:22
593
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1