php教程技术文章
-
PHP 的 SensitiveParameter 与 SensitiveParameterValue 可以让堆栈中的敏感参数显示为脱敏对象,但它不等于日志系统自动脱敏。本文用异常堆栈、调试输出和结构化日志三个场景说明标注方式、getValue() 边界与验收方法。387 收藏 -
PHP 日期计算里,1 月 31 日加一个月并不一定得到 2 月最后一天。本文对比 DateTimeImmutable 的 modify、显式锚定月初再回退一天等写法,给出可验证的选择边界。254 收藏 -
用 DateTimeZone::getTransitions 读取时区偏移变更,再结合 DateTimeImmutable 做缺口时间和重复时间的核对,避免把固定 UTC 偏移当成地区时区。348 收藏 -
PHP 8.3 引入的 #[\Override] 可以在继承方法改名、接口调整或父类重构时尽早暴露契约断裂。本文用一个订单服务重构场景,拆解属性放置、编译期报错、接口实现和部署前回归检查。438 收藏 -
PHP 报 Allowed memory size exhausted 时,先区分单次峰值、批量数据过大和长期增长,再用 memory_get_usage、memory_get_peak_usage 与分段日志定位,最后验证回收和配置边界。413 收藏 -
PHP 用 fputcsv 导出 CSV 时,Excel 出现乱码、列错位或引号异常,通常不是数据本身坏了,而是分隔符、转义字符和 UTF-8 BOM 没有与打开方式对齐。本文用可复现代码拆开这些边界,并给出导出后的验收办法。428 收藏 -
文章 · php教程 | 1星期前 | PHP · 日期时间 · DatePeriod · PHP 8.2 · 时间区间 · php DateInterval DatePeriod INCLUDE_END_DATE 日期区间
PHP DatePeriod 默认不把结束日期放进迭代结果。本文用按天生成账单日期的例子说明 INCLUDE_END_DATE、EXCLUDE_START_DATE 的组合、PHP 版本边界和可复现的遍历验收。114 收藏 -
用 PHP 和 PDO 设计一个可恢复的大文件上传流程,讲清分片命名、哈希校验、临时文件隔离、合并与失败清理的边界。415 收藏 -
preg_match 配合 PREG_OFFSET_CAPTURE 返回的是匹配文本和字节偏移,不是中文字符下标。本文用 UTF-8 文本拆解偏移量、mb_substr 截取和 offset 参数的校验边界。111 收藏 -
用 PHP 递归处理 JSON 日志中的密码、令牌和个人字段,兼顾嵌套数组、无效 UTF-8、null 值与审计可追溯性,给出可测试的脱敏边界。462 收藏 -
PHP preg_match 返回 0 和 false 不是一回事:0 表示正则语法有效但没有匹配,false 表示调用或正则本身出错。本文用手机号校验和 UTF-8 异常案例拆开判断顺序,给出日志记录、错误定位和边界检查方法。489 收藏 -
PHP 表单提交失败时,如果只在页面顶部显示一串错误,用户很难知道该改哪个输入框。本文用 session flash 保存一次性校验结果,再通过 aria-describedby 将错误消息绑定到对应字段,覆盖重定向、刷新、成功提交和无障碍检查。455 收藏 -
同一浏览器打开多个页面时,PHP session 文件锁可能让本来独立的请求串行等待。本文用最小示例定位等待来源,并说明何时提前释放会话、哪些场景不能贸然释放。355 收藏 -
文章 · php教程 | 1星期前 | JSON · 数据校验 · 异常处理 · PHP · 接口开发 · php json_decode JSON_THROW_ON_ERROR JSON_ERROR_DEPTH JSON_ERROR_SYNTAX
PHP json_decode 返回 null 时,先区分合法 JSON 的 null、语法错误、深度超限和编码问题,再用 JSON_THROW_ON_ERROR 与 json_last_error_msg() 留下可定位的异常证据。484 收藏 -
从 PHP-FPM 进程池耗尽的真实信号出发,解释 pm.max_children、慢日志和入口限流如何配合,给出可灰度、可回滚的排查与改造步骤。430 收藏