php教程技术文章
-
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教程 | 4天前 | 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 收藏 -
PHP 8.5 扩展了 #[\Deprecated] 的使用范围。本文用用户级方法、类常量和 trait 做一套可复查的弃用工作流,说明告警触发、Reflection 验收与旧版本兼容边界。446 收藏 -
PHP 校验回调签名或一次性令牌时,逐字符比较可能暴露时序差异。本文从 webhook 验签场景出发,说明 hash_equals 的参数顺序、长度边界、类型校验、原始字符串编码和失败审计,给出可直接落地的验收清单。322 收藏 -
PHP array_filter 会保留原数组键名,过滤后直接 json_encode 可能得到 JSON 对象。本文用订单字段清洗示例说明默认过滤、回调签名、键名重排和嵌套数组边界。102 收藏 -
PHP match 没有命中任何分支时会抛出 UnhandledMatchError。本文用状态映射示例说明何时保留异常、何时增加 default,并给出输入校验与测试边界。107 收藏 -
文章 · php教程 | 4天前 | 日志 · CLI · 异常处理 · PHP · 进程验收 · Throwable 退出码 register_shutdown_function 命令行脚本 PHP CLI
PHP CLI 脚本明明抛出了异常,shell 或 CI 却拿到 0,通常不是 PHP 没有报错,而是异常、致命错误和 shutdown 回调被混在了一条观测链里。本文从命令行任务现场出发,拆开 Throwable、register_shutdown_function 与退出码的关系,并给出可复现的日志验收方法。133 收藏 -
PHP 的 [] 和 list() 解构能让数组取值更短,但缺失键会得到 null 并触发告警,数字索引与关联键也不能混用理解。本文用订单输入示例拆开映射、默认值、校验和 foreach 的边界。427 收藏 -
PHP 8.4 的日期解析失败不应再靠返回值猜测。本文用用户输入日期的实际场景,说明 DateMalformedStringException 的捕获边界、格式校验、日志记录和旧版本兼容写法。367 收藏 -
PHP 8.4 属性钩子可以把输入归一化放进属性声明附近,但它不会替代完整的业务校验。本文通过金额和状态字段,说明 set 钩子的触发边界、类型约束、异常处理与旧版本回退方式。347 收藏