php教程技术文章
-
PHP 使用 stream_copy_to_stream 限制文件流复制长度时,应把字节上限传给 length,并区分 offset 起点、短流和 false 失败返回。359 收藏 -
PHP 启用 OPcache 预加载后,类定义会随 PHP-FPM 进程驻留。本文解释为什么普通缓存刷新不够,并给出配置确认、构建标记、FPM 重启和发布复查步骤。345 收藏 -
用 PHP 自定义 session handler 把序列化会话写入 Redis,并通过 SET NX EX、随机 token 和 TTL 处理并发写入与过期回收。110 收藏 -
讲清 PHP mysqli multi_query 如何用 more_results 和 next_result 遍历全部结果,并在切换前释放结果集、识别后续 SQL 错误。282 收藏 -
PHP PDO 绑定 LIMIT 报类型错误,通常是参数按字符串传给了预处理语句。本文说明如何校验分页输入、使用 PDO::PARAM_INT 绑定 LIMIT/OFFSET,并避免 execute 参数覆盖已有绑定。408 收藏 -
Generator 适合惰性迭代和流式数据,Fiber 适合暂停完整调用栈;真正的非阻塞 I/O 仍由事件循环和异步库负责。本文按任务形态说明三者如何组合。259 收藏 -
PHP backed enum 默认把 value 编码为 JSON 标量,纯 enum 不能直接编码;本文用示例说明如何用 JsonSerializable 固定 code、label 等接口结构,避免 case 重命名破坏兼容性。151 收藏 -
PHP 8.4 属性钩子适合集中处理单属性的清洗、类型边界和局部校验,但跨字段规则与数据库副作用不应塞进 get/set。本文用订单行示例拆分属性钩子、命名构造器和服务层的职责。233 收藏 -
PHP 多进程同时写同一文件时,用同一个独立锁文件配合 flock(LOCK_EX) 保护完整临界区;本文讲清 fopen 模式、ftruncate、LOCK_NB、读取共享锁和异常释放。474 收藏 -
PHP 文件上传时不要直接相信客户端 MIME 或文件扩展名,应读取服务器临时文件,用 finfo(FILEINFO_MIME_TYPE) 判断内容,再通过允许列表和安全命名完成保存。499 收藏 -
PHP 使用 ZipArchive 打包文件时,把 addFile 的第二个参数设为相对 entryname,就能去掉服务器目录前缀;本文进一步说明递归目录、路径分隔符、文件可读性和 close 失败的处理方式。168 收藏 -
PHP cURL 中,CURLOPT_CONNECTTIMEOUT 负责连接阶段,CURLOPT_TIMEOUT 负责整次请求;本文用秒级和毫秒级示例说明如何配置、诊断和选择预算。498 收藏 -
PHP 的 array_filter 会保留原数组键,被过滤的数字键形成空洞后,json_encode 会把这一层编码成 JSON 对象。本文用一个接口列表示例说明原因,并给出 array_values、嵌套数组和空结果的处理方式。132 收藏 -
PHP yield 通过暂停并恢复生成器,按需交出当前数据,避免在处理开始前构造完整数组。本文解释内存差异、逐条读取写法、资源清理和不能随机访问的边界。495 收藏 -
PHP 中需要保留原始时间对象时,应使用 DateTimeImmutable::setTimezone() 返回目标时区的新对象。本文用可复现代码说明显示时区、时间点、输入校验,以及它和可变 DateTime 的区别。184 收藏