php教程技术文章
-
PHP CLI worker 使用 pcntl_signal 做优雅退出时,重点是先确认 PCNTL 运行前提,再选择异步或手动分发,让 handler 只记录停止意图,最后由 finally 统一完成幂等清理。157 收藏 -
DOMXPath 查询带默认命名空间的 XML 时,直接写 //catalog/item 往往返回空结果。本文用原创 XML 示例说明如何注册 namespace URI、选择 XPath 前缀,并区分空 DOMNodeList 与 false 的排查路径。216 收藏 -
文章 · php教程 | 3天前 | PHP · 文件流 · 故障排查 · stream_copy_to_stream · 文件复制 短写 stream_copy_to_stream PHP流 流位置
stream_copy_to_stream 返回字节数偏少时,先区分源流已到当前位置、length 限制、offset 语义和目标流失败。本文给出可复制的 PHP 排查代码与边界清单。123 收藏 -
PHP 并行 cURL 中 curl_multi_select 返回 0 通常表示等待超时而非请求失败。本文区分 0、-1 和正数,给出避免忙等、读取错误与回收句柄的排查方法。121 收藏 -
PHP WeakMap 没有单独的生命周期配置项,条目是否消失取决于键对象是否还存在强引用。本文用最小复现和排查清单定位 count 不变化、条目提前消失等问题。472 收藏 -
PHP readonly 属性排查指南:从 PHP 版本、类型声明和初始化作用域入手,定位重复赋值、引用修改、数组间接修改、对象内部可变与继承边界。104 收藏 -
PHP Fibers 没有独立开关,先检查 PHP 8.1+ 与 Fiber 类,再用 start、suspend、resume、throw 和状态方法定位挂起恢复问题。205 收藏 -
PHP match 未处理分支通常不是语法错误,而是严格比较没有命中且表达式没有覆盖全部输入。本文用 default、异常边界和类型检查给出一套排查方法。498 收藏 -
PHP 的 array_is_list() 不支持通过配置放宽条件;它只认从 0 开始且按顺序无缺口的整数键。本文用键检查定位 unset 和 array_filter 造成的断档,并说明何时用 array_values() 修复列表形状。157 收藏 -
本文用分页参数 page 演示 PHP filter_input 的四个参数配置,解释 FILTER_VALIDATE_INT、options、默认值,以及 null、false 和合法值的排查边界。363 收藏 -
以 PDO_MYSQL 为例,说明如何关闭模拟预处理、设置异常模式、验证参数绑定,并排查驱动、占位符和 SQL 标识符边界。288 收藏 -
PHP DateTimeImmutable 出现时差、解析失败或 modify 不生效时,按时区、解析错误和不可变返回值三层排查,并用 RFC3339 输出确认对象状态。132 收藏 -
关闭 OPcache.validate_timestamps 能减少文件时间戳检查,但发布时必须主动处理缓存。本文用版本目录、文件级失效、FPM 重载和健康检查,整理一套可回滚的 PHP 发布顺序。201 收藏 -
PHP DateTime 时区转换后日期跨天,通常是同一时间点在目标时区的本地日期不同。本文区分 setTimezone、setTime 和字符串解析,说明如何保留原始时间并按业务时区计算日期。107 收藏 -
文章 · php教程 | 4天前 | PHP · curl · HTTP客户端 · 连接复用 · 安全边界 · php Curl curl_share_init_persistent CURL_LOCK_DATA_DNS CURL_LOCK_DATA_CONNECT
PHP 8.5 的 curl_share_init_persistent 可以跨请求复用 DNS、连接和 TLS session,但不能共享 Cookie。把网络缓存与用户身份分开,才能降低连接复用带来的跨请求状态泄漏风险。132 收藏