PHP
-
「IM系列」WebSocket教程:心跳检测与重连机制
为什么需要心跳检测? 正常的情况客户端断开连接会向服务端发送一个fin包,服务端收到fin包后得知客户端连接断开,则立刻触发onClose事件回调。 心跳包格式:WebSocket…
-
「译文」MySQL 8.2 正式发布,原生支持读写分离!
最近,Oracle 宣布 MySQL 8.2 正式可用,包括对读写分离的支持。这一备受期待的特性已经在最新的创新版本中引入,有助于优化数据库性能和提升可扩展性。 读写分离使应用程序…
-
Snipaste 超级好用截图+贴图工具
Snipaste 是一个简单但强大的截图工具,也可以让你将截图贴回到屏幕上!下载并打开 Snipaste,按下 F1 来开始截图,再按 F3,截图就在桌面置顶显示了。就这么简单! …
-
Redis Stack 技术栈之JSON数据模型 RedisJSON
简介 RedisJSON是RedisLabs公司开发的一款用于扩展Redis的JSON处理模块,能够让Redis像处理其他类型键一样处理JSON格式的数据,相当于扩展了Redis的…
-
Redis Stack 技术栈之搜索引擎 RedisSearch
介绍 RedisSearch 是一个基于 Redis 的搜索引擎模块,它提供了全文搜索、索引和聚合功能。通过 RedisSearch,可以为 Redis 中的数据创建索引,执行复杂…
-
使用PHP和Redis向量数据库基于ChatGPT实现文本搜索引擎
简单原理:使用 ChatGPT enbedding,对现有的数据文档,将文本转换为向量,进行矢量化处理,并存入Redis向量数据库,实现向量相似度搜索。新的提问过来,先使用 Cha…
-
「IM系列」WebSocket教程:跨语言 WebSocketd 让实时通信更简单!
WebSocketd 是WebSocket的守护进程(命令行工具),负责处理WebSocket连接,并启动服务器应用程序来处理WebSockets,在应用程序和Web浏览器之间传递…
-
一步步教你编译PHP 8.3并快速启动ThinkPHP 8.0框架项目
本文将介绍如何在本地编译 PHP 8.3 并快速搭建一个 ThinkPHP 8.0 框架应用。通过这篇教程,您可以轻松掌握 PHP 8.3 的编译和 ThinkPHP 8.0 的使…
-
JavaScript前端电子表格处理神器 SheetJS
SheetJS 是一个基于 JavaScript 的表格处理库,它支持各种表格文件格式,包括 Excel、CSV 等。SheetJS 适用于浏览器和 Node.js,拥有强大的电子…
-
如何在 PHP 8.3 上编译安装 Event 事件驱动扩展库?
PHP Event 扩展是 PHP 的一个扩展库,用于处理事件驱动的编程。它提供了一种机制,使开发者能够创建、监听和处理事件。事件是一种在特定条件下触发的通知或动作,可以在应用程序…
-
PHPStan :PHP静态代码质量分析工具
简介 为什么要用 PHPStan? 编译型语言需要在程序运行之前了解每个变量的类型,每个方法的返回类型。这就是为什么编译器需要确保程序是没有错误的,并且会在源码中向你指出这些类型的…
-
如何发布一个自己的Composer依赖包
Composer是 用PHP开发的用来管理项目依赖的工具,当你在项目中声明了依赖关系后,composer可以自动帮你下载和安装这些依赖库,并实现自动加载代码。 工作原理 主要由三个…
-
通过PHP注解Apidoc自动生成API接口文档在Webman框架
Apidoc 🤷♀️ Apidoc是什么? Apidoc 是一个通过解析注解生成Api接口文档的PHP composer扩展,兼容Laravel、ThinkPHP、Hyperf、…
-
PHP系列 | 索引数组和关联数组转JSON区别
什么是索引数组? 索引数组是指以数字为键的数组。并且这个键值是自增的。 $indexArr = [“PHP”,”Java”,”Golang”];var_dump…
-
TimeHelper 轻量级PHP日期时间类库
TimeHelper 是一个简单易用的PHP时间日期助手类库,可以快速实现常用的时间日期操作,比如获取指定时间的秒数,获取友好的时间格式,判断时间范围,计算两个时间相差值,返回N小…
-
入门 | 如何在PHP中使用FFmpeg进行音视频操作
介绍 FFmpeg FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植…