php教程技术文章
-
本文详解如何修改 HTML 表单与 PHP 后端逻辑,使用户能通过复选框同时选择多个月份,并准确筛选和展示对应月份的字段数据,解决因 name 属性重复导致仅接收单个值的问题。 本文详解如何修改 HTML 表单与 PHP 后端逻辑,使用户能通过复选框同时选择多个月份,并准确筛选和展示对应月份的字段数190 收藏 -
本文介绍在三表多对多关系(水果、桶、关联表)中,如何编写SQL精确查询同时包含指定种类及数量水果的桶,重点解决“仅含2个苹果和1个香蕉”这类复合条件匹配问题。 本文介绍在三表多对多关系(水果、桶、关联表)中,如何编写SQL精确查询同时包含指定种类及数量水果的桶,重点解决“仅含2个苹果和1个香蕉”这类181 收藏 -
本文从 PHP 项目中同步接口变慢的趋势信号出发,分析哪些场景适合队列化,哪些风险需要提前控制,并给出从请求内处理迁移到后台 Job Worker 的采用路径和观察指标。178 收藏 -
用 PHP Throwable 的 getTraceAsString 记录异常调用链,同时结合 getTrace、参数过滤和 error_log,避免把令牌、密码等敏感值直接写进线上日志。178 收藏 -
PHP 对象持久化从 __sleep/__wakeup 迁移到 __serialize/__unserialize 时,真正需要处理的是字段版本、缺失字段和不可信输入。本文用一个订单快照对象拆开保存格式、兼容恢复与验收边界。176 收藏 -
文章 · php教程 | 2个月前 | PHP · MD5 · 登录安全 · password_hash · password_verify · password_hash password_verify 登录安全 PHP密码迁移 MD5迁移
老 PHP 项目常把密码存成 MD5。本文按完整工作流讲清楚如何不强制用户改密码:识别旧格式、兼容登录校验、登录成功后自动写回新哈希,并逐步清理旧密码格式。174 收藏 -
PHP curl_multi 适合把多个 HTTP 请求放进同一批次,但并发数、超时、句柄回收和失败重试必须一起设计。本文用一个可控批处理示例讲清请求收敛和验收边界。174 收藏 -
PHP 默认文件会话在同一用户并发请求下容易因为会话锁排队,接口越慢越明显。优化思路不是简单换 Redis,而是先缩短会话锁持有时间,再把会话存储迁到 Redis,并补上 TTL、回退和监控信号。164 收藏 -
PHP 8.5 允许静态闭包和一等可调用出现在常量表达式中,属性参数因此可以直接承载校验器或处理器。本文从路由属性场景出发,拆开 PHP 8.4 与 8.5 的解析边界,并用 Reflection 和 CI 检查兼容性。164 收藏 -
PHP 8.2 提供的 ini_parse_quantity 能把 ini 风格容量解析成字节,但非法单位会发出警告并按兼容规则解释。本文用配置校验器拆开单位换算、整数溢出和上线验收边界。163 收藏 -
PHP Generator 使用 yield from 委托子迭代器时,外层遍历拿到的是 yield 值,子 Generator 的 return 值要等委托完成后通过 getReturn 读取。本文用可运行示例说明调用链、完成条件和常见误区。161 收藏 -
文章 · php教程 | 2天前 | 反射 · PHP · PHP 8.5 · 属性 · 兼容性 · php PHP 8.5 ReflectionAttribute DelayedTargetValidation 属性目标
PHP 8.5 的 DelayedTargetValidation 不是放宽属性规则,而是把内置属性目标的错误从编译阶段延后到反射运行阶段,适合维护跨 PHP 版本的库代码。159 收藏 -
用 DOMXPath 读取 XML 时,节点查询、count() 和 string() 返回的类型不同。本文用最小 PHP 示例说明如何判断返回值、处理空节点集,并把结果安全地转换成业务字段。158 收藏 -
文章 · php教程 | 4天前 | 反射 · 单元测试 · php教程 · 对象初始化 · php ReflectionClass newInstanceWithoutConstructor ReflectionProperty isInitialized 遗留代码测试
PHP 反射可以创建一个不执行构造函数的对象,适合给遗留类做边界测试,但未初始化属性仍可能在读取时抛出 Error。本文用 ReflectionClass、ReflectionProperty 和 isInitialized() 演示安全的测试夹具写法。157 收藏 -
文章 · php教程 | 1星期前 | HTTP · 文件上传 · PHP · PHP 8.4 · multipart/form-data PHP 8.4 request_parse_body PUT文件上传
PHP 8.4 的 request_parse_body() 让 PUT、PATCH 等非 POST 请求也能解析表单和文件。用一个可运行的小接口说明请求体只能读取一次、上传大小覆盖和失败验收。155 收藏