php教程技术文章
-
文章 · php教程 | 2个月前 | 性能 · PHP · php-fpm · php-fpm 缓存排查 PHP OPcache 代码更新不生效 opcache.validate_timestamps
PHP 文件已经更新,接口却还返回旧结果,通常不是代码没有上传,而是 OPcache 仍在复用旧脚本。本文用文件时间、OPcache 配置、PHP-FPM 重载和回滚复查串起一套可执行的排查流程。372 收藏 -
文件下载接口不能只判断文件是否存在,还要校验当前用户是否拥有资源、链接是否过期以及访问是否留痕。本文用 PHP 构建一条资源归属校验、短时签名和审计日志连贯的下载链路,并给出回归检查与回滚边界。257 收藏 -
多个 PHP 站点共用一个 PHP-FPM 进程池时,一个慢接口就可能挤占所有工作进程。本文用订单站和报表站的部署场景,比较独立进程池、并发预算、慢日志与灰度回滚的落地做法。256 收藏 -
PHP 8.5 新增内置 URI 扩展,可按 RFC 3986 和 WHATWG URL 标准解析、规范化并修改地址。以登录回跳为例,本文给出基于 Uri\Rfc3986\Uri 的 scheme 与 host 白名单写法、旧 parse_url() 方案的边界,以及上线前的兼容性检查。130 收藏 -
PHP 接口里的时间问题,常常不是格式错,而是时区和日界线被悄悄改掉。用 DateTimeImmutable 固定输入规则、统一存储 UTC、按用户时区输出,并为日期筛选补上半开区间,可以避开少一天、重复八小时和夏令时边界等常见事故。496 收藏 -
PHP 定时任务重叠运行时,单靠进程号或临时文件往往不够可靠。用 flock 保持互斥、写入 PID 与开始时间,再配合超时观察和可复查日志,可以把重复处理、锁误判与人工介入边界拆清楚。424 收藏 -
用一个可运行的 PHP 小项目实现一次性下载链接:服务端只保存令牌哈希,链接有明确过期时间,并在发送文件前用 SQLite 事务完成原子核销。391 收藏 -
PHP 8.5 已引入 |> 管道操作符,适合把一连串单输入、单输出的处理写成从左到右可读的链。本文从后台内容标题清洗场景出发,对比嵌套调用与管道写法,说明适用边界、版本落地方式,以及不该为了新语法强行改造的几类代码。445 收藏 -
文章 · php教程 | 2个月前 | PHP · api设计 · 后端开发 · PHP http_build_query PHP 数组参数 URL 查询参数 PHP_QUERY_RFC3986 重复键参数 接口参数设计
PHP 的 http_build_query 会把数组编码成带下标的方括号参数;这和不少接口要求的重复键写法不是一回事。用一个筛选接口场景梳理数组、null、空格编码与兼容策略,避免请求串看着对、下游却读不出参数。245 收藏 -
PHP 导出或后台列表一到几十万行就内存耗尽,常见原因不是 PDO 连不上,而是 fetchAll() 一次把剩余结果集堆进数组。先用最小测量定位峰值,再按用途改成 SQL 限制、逐行 fetch() 或分页批处理,才能把结果集大小和内存边界重新拉回可控范围。495 收藏 -
PHP 8.4 会弃用 Type $arg = null 这种隐式可空签名。文章用旧写法与 ?Type、Type|null 的对比,说明兼容边界、扫描方法、回归检查和可分批落地的迁移清单。317 收藏 -
文章 · php教程 | 2个月前 | nginx · php-fpm · php教程 · 故障复盘 · Nginx php-fpm 性能排查 PHP教程 502 Bad Gateway pm.max_children 慢日志
PHP-FPM 子进程打满时,502 往往不是单纯把 pm.max_children 调大就能解决。更稳的排查顺序是先看 Nginx upstream 错误和 FPM 状态页,再用慢日志找到长时间占用子进程的请求,最后把容量、慢查询、限流和告警一起补齐。407 收藏 -
用 PHP 写一个小型 HTTP 探测器,重点不是只把远程接口请求通,而是给连接设置超时、拿到状态码、记录耗时和错误信息,并让接口返回可验收的 JSON。文章用原生 stream_context_create 串起入口接口、请求函数、日志文件和验收清单,适合放进定时任务或后台健康检查。289 收藏 -
PHP 文件上传不要只看后缀名,要先检查上传错误码和大小,再用 finfo_file 识别 MIME,最后用随机文件名和 move_uploaded_file 移到受控文件夹。409 收藏 -
PHP 默认文件会话在同一用户并发请求下容易因为会话锁排队,接口越慢越明显。优化思路不是简单换 Redis,而是先缩短会话锁持有时间,再把会话存储迁到 Redis,并补上 TTL、回退和监控信号。164 收藏