php教程技术文章
-
PHP 测量短代码耗时时,优先用 hrtime() 获取单调高精度时间,再用结束值减开始值并明确换算单位。本文说明数组与整数返回形态、与 microtime() 的区别、失败处理和性能采样边界。116 收藏 -
PHP 8.5 已移除 disable_classes。本文从运行入口、配置文件、CLI 与 PHP-FPM 差异出发,给出遗留配置定位、应用影响排查和替代策略,避免把旧的禁用类假设误当成当前运行时能力。115 收藏 -
PHP DatePeriod 默认不把结束日期放进迭代结果。本文用按天生成账单日期的例子说明 INCLUDE_END_DATE、EXCLUDE_START_DATE 的组合、PHP 版本边界和可复现的遍历验收。114 收藏 -
PHP OptionsResolver 用 setAllowedTypes() 限制选项类型,用 setAllowedValues() 限制枚举或闭包业务规则;继承配置时用 addAllowedTypes() 和 addAllowedValues() 保留父类范围。本文给出组合写法、Symfony 7.3+ 联合类型边界和 InvalidOptionsException 排查方法。114 收藏 -
PHP PDO 的模拟预处理与原生预处理,关键差异在参数模板由谁解析以及 prepare() 是否与数据库协商。本文说明 ATTR_EMULATE_PREPARES 的配置方式、唯一占位符写法、驱动兼容边界和排查清单。112 收藏 -
讲清 PHP hash_equals 的参数顺序、长度边界与 hash_hmac 输出格式,给出回调签名校验的原创示例。112 收藏 -
PHP 8.4 新增 mb_ucfirst(),可以按多字节字符安全处理标题首字母。本文从 UTF-8 标题清洗场景出发,核对编码、空字符串、null 参数和 PHP 8.3 兼容写法,给出可回归的最小实现。111 收藏 -
preg_match 配合 PREG_OFFSET_CAPTURE 返回的是匹配文本和字节偏移,不是中文字符下标。本文用 UTF-8 文本拆解偏移量、mb_substr 截取和 offset 参数的校验边界。111 收藏 -
用 PHP 自定义 session handler 把序列化会话写入 Redis,并通过 SET NX EX、随机 token 和 TTL 处理并发写入与过期回收。110 收藏 -
PHP 8.4 的 array_find 只返回命中的值,想同时取得键和值时,应先用 array_find_key 得到键,再回查原数组;这种写法还能区分未命中与命中 null。110 收藏 -
PHP 8.4 与 8.5 的 #[\Deprecated] 支持范围不同。本文从旧 API 迁移现场出发,用函数、trait、类常量和全局常量示例,验证弃用信号、Reflection 与版本兼容边界。107 收藏 -
PHP match 没有命中任何分支时会抛出 UnhandledMatchError。本文用状态映射示例说明何时保留异常、何时增加 default,并给出输入校验与测试边界。107 收藏 -
PHP DateTime 时区转换后日期跨天,通常是同一时间点在目标时区的本地日期不同。本文区分 setTimezone、setTime 和字符串解析,说明如何保留原始时间并按业务时区计算日期。107 收藏 -
对比 PHP json_validate 与 json_decode 的语法校验、值构建、depth、flags 和错误处理边界,说明什么时候只校验、什么时候直接解码,以及 PHP 8.2 的兼容写法。107 收藏 -
文章 · php教程 | 2个月前 | HTTP · 文件上传 · PHP · PHP 8.4 · multipart/form-data PHP 8.4 request_parse_body PUT文件上传
PHP 8.4 的 request_parse_body() 让 PUT、PATCH 等非 POST 请求也能解析表单和文件。用一个可运行的小接口说明请求体只能读取一次、上传大小覆盖和失败验收。106 收藏