php教程技术文章
-
文章 · php教程 | 4天前 | API · PHP · 后端开发 · DateTimeImmutable · 时区处理 · php JSON 时区 UTC DateTimeImmutable 接口时间
PHP 接口里的时间问题,常常不是格式错,而是时区和日界线被悄悄改掉。用 DateTimeImmutable 固定输入规则、统一存储 UTC、按用户时区输出,并为日期筛选补上半开区间,可以避开少一天、重复八小时和夏令时边界等常见事故。496 收藏 -
PHP 导出或后台列表一到几十万行就内存耗尽,常见原因不是 PDO 连不上,而是 fetchAll() 一次把剩余结果集堆进数组。先用最小测量定位峰值,再按用途改成 SQL 限制、逐行 fetch() 或分页批处理,才能把结果集大小和内存边界重新拉回可控范围。495 收藏 -
文章 · php教程 | 5天前 | PHP · 函数式编程 · 升级 · PHP 8.5 · 管道操作符 · 代码可读性 · PHP 8.5 PHP 管道操作符 PHP |> 运算符 PHP 函数链 PHP 8.5 升级 PHP 输入清洗
PHP 8.5 已引入 |> 管道操作符,适合把一连串单输入、单输出的处理写成从左到右可读的链。本文从后台内容标题清洗场景出发,对比嵌套调用与管道写法,说明适用边界、版本落地方式,以及不该为了新语法强行改造的几类代码。445 收藏 -
PHP 定时任务重叠运行时,单靠进程号或临时文件往往不够可靠。用 flock 保持互斥、写入 PID 与开始时间,再配合超时观察和可复查日志,可以把重复处理、锁误判与人工介入边界拆清楚。424 收藏 -
用一个可运行的 PHP 小项目实现一次性下载链接:服务端只保存令牌哈希,链接有明确过期时间,并在发送文件前用 SQLite 事务完成原子核销。391 收藏 -
文章 · php教程 | 2天前 | 性能 · PHP · php-fpm · OPcache · 部署排查 · php-fpm 缓存排查 PHP OPcache 代码更新不生效 opcache.validate_timestamps
PHP 文件已经更新,接口却还返回旧结果,通常不是代码没有上传,而是 OPcache 仍在复用旧脚本。本文用文件时间、OPcache 配置、PHP-FPM 重载和回滚复查串起一套可执行的排查流程。372 收藏 -
Webhook 只校验 HMAC 签名还不够,攻击者仍可重复发送一份合法请求。本文用 PHP 8、hash_hmac、hash_equals 和 MySQL 唯一索引,搭建时间窗、nonce、幂等记录与失败回退的完整防护流程。335 收藏 -
PHP PDO 事务里最容易误判的不是 beginTransaction,而是异常有没有真正离开业务边界、commit 是否只发生一次,以及回滚后调用方是否仍把失败当成功。本文用订单扣库存场景拆开这些边界。329 收藏 -
文章 · php教程 | 1天前 | 依赖注入 · 架构设计 · PHP · PHP 8 · 属性 · ReflectionClass · 依赖注入 可测试代码 ReflectionClass 构造器注入 PHP 8 属性
不引入完整容器,也可以用 PHP 8 属性和反射做一个可控的轻量依赖注入容器。文章从构造器参数解析、服务注册、单例边界和测试替身四个角度,给出可运行的小实现,并说明哪些场景不该继续扩展。262 收藏 -
文件下载接口不能只判断文件是否存在,还要校验当前用户是否拥有资源、链接是否过期以及访问是否留痕。本文用 PHP 构建一条资源归属校验、短时签名和审计日志连贯的下载链路,并给出回归检查与回滚边界。257 收藏 -
文章 · php教程 | 3天前 | nginx · PHP · 运维 · php-fpm · 部署优化 · 进程池 · php-fpm 进程池 PHP教程 pm.max_children 多站点部署 慢请求隔离
多个 PHP 站点共用一个 PHP-FPM 进程池时,一个慢接口就可能挤占所有工作进程。本文用订单站和报表站的部署场景,比较独立进程池、并发预算、慢日志与灰度回滚的落地做法。256 收藏 -
文章 · php教程 | 5天前 | PHP · api设计 · url编码 · 后端开发 · http_build_query · 查询参数 · PHP http_build_query PHP 数组参数 URL 查询参数 PHP_QUERY_RFC3986 重复键参数 接口参数设计
PHP 的 http_build_query 会把数组编码成带下标的方括号参数;这和不少接口要求的重复键写法不是一回事。用一个筛选接口场景梳理数组、null、空格编码与兼容策略,避免请求串看着对、下游却读不出参数。245 收藏 -
PHP 8.5 新增内置 URI 扩展,可按 RFC 3986 和 WHATWG URL 标准解析、规范化并修改地址。以登录回跳为例,本文给出基于 Uri\Rfc3986\Uri 的 scheme 与 host 白名单写法、旧 parse_url() 方案的边界,以及上线前的兼容性检查。130 收藏