php教程技术文章
-
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 收藏