php教程技术文章
-
用 PHP Fiber 把一个长任务拆成可暂停的执行段,演示 Fiber::start、Fiber::suspend、Fiber::resume 与 Fiber::getReturn 的调用关系、返回值边界和异常处理。433 收藏 -
从业务负载、连接边界和故障恢复三个角度,说明 PHP PDO 持久连接的适用条件,并给出可回滚的事务与断线重连示例。132 收藏 -
文章 · php教程 | 2天前 | php教程 · 安全边界 · DOMDocument · XML解析 · php XML安全 DOMDocument LIBXML_NONET LIBXML_NO_XXE
用 PHP DOMDocument 解析不可信 XML 时,关键不是简单关闭一个开关,而是控制加载选项、保留解析错误并验证输入边界。本文对比 LIBXML_NONET、LIBXML_NO_XXE 与外部实体加载器的适用场景。128 收藏 -
用 DOMXPath 读取 XML 时,节点查询、count() 和 string() 返回的类型不同。本文用最小 PHP 示例说明如何判断返回值、处理空节点集,并把结果安全地转换成业务字段。158 收藏 -
文章 · php教程 | 2天前 | php教程 · PHP会话 · SessionHandlerInterface · 数据库存储 · PHP会话 session_set_save_handler SessionHandlerInterface 数据库会话
把 PHP 会话从默认文件存储切到数据库时,真正容易出错的是回调顺序、原始序列化字符串和 gc 清理边界。本文用 SessionHandlerInterface 完成一套可核对的写入、读取、销毁与过期回收流程。134 收藏 -
PHP CLI 长任务不应靠强制终止收尾。本文用 pcntl_signal 接住 SIGTERM,在批处理检查点记录停止请求,区分当前批次完成与进程退出,并给出可回滚、可验证的部署处理方式。408 收藏 -
PHP 8.4 的 #[\SensitiveParameter] 可以让异常回溯和参数转储避开密码、令牌等敏感值。本文用一个登录服务例子说明它的作用范围、调用链和上线前的日志核对方法。310 收藏 -
PHP 8.2 的 readonly class 能把值对象的写入边界收紧到构造阶段,但它不等于深度不可变。本文用 Address 和 OrderSnapshot 说明构造、内部对象、clone 与继承限制。480 收藏 -
用 PHP PharData 处理 tar 备份时,不能只检查压缩包能否打开,还要逐条校验归档路径,拒绝 ../、绝对路径和解包目录外的目标。本文给出打包、检查和安全解包的可运行边界。447 收藏 -
用 IntlDateFormatter 处理本地化日期时,真正容易出错的是格式器时区覆盖 DateTime 时区,以及 ICU 模式和 date() 模式不同。本文用 Asia/Shanghai 与 UTC 的可验证示例说明初始化、核对和边界处理。260 收藏 -
文章 · php教程 | 3天前 | 面向对象 · php教程 · PHP 8.4 · 兼容性迁移 · 动态属性 PHP 8.4 AllowDynamicProperties PHP迁移 deprecated
PHP 8.2 起,给未声明属性赋值会触发动态属性弃用提示。本文用一个遗留 User 对象示范如何定位告警、优先声明属性,并在确有兼容需要时使用 #[\AllowDynamicProperties],最后用回归检查确认迁移没有吞掉拼写错误。303 收藏 -
PHP PDO 的 FETCH_GROUP 适合把同一分类的多条记录聚在一起,FETCH_UNIQUE 则把唯一键映射成单条记录。本文用商品分类查询拆开两种结果结构、重复键覆盖风险、空结果验收与最小可运行写法。244 收藏 -
用 PHP XMLReader 按游标读取超大 XML,区分 read、next 和 expand 的职责,控制节点处理和内存释放边界。331 收藏 -
文章 · php教程 | 4天前 | 错误处理 · HTTP · PHP · 接口调用 · stream context · php Http请求 重定向 超时 stream_context_create
用 PHP stream_context_create 为 HTTP 请求设置超时、重定向上限和失败响应读取规则,再通过响应头与状态码完成可复现验收。427 收藏 -
用一个可复现的 PHP Fiber 示例排查 start、suspend、resume 和 getReturn 的状态边界,避免重复恢复与未完成读取。149 收藏