php教程技术文章
-
PHP 8.5 将 chr() 接收 0 到 255 之外整数的行为标记为弃用。文章从字节输入、负数与大整数、编码边界和回归测试出发,给出兼容 PHP 8.5 的改造顺序。468 收藏 -
文章 · php教程 | 1星期前 | php教程 · Cookie安全 · PHP 8.5 · setCookie SameSite PHP 8.5 Partitioned Cookie CHIPS
PHP 8.5 的 setcookie() 支持 Partitioned 选项,本文用跨站嵌入场景说明 Secure、SameSite 和 Partitioned 的组合要求,并给出旧版本安全回退策略。466 收藏 -
在 PHP 8.1 里,如果用 FFI 去加载 .so 动态库时碰到 “Failed resolving C function” 这类报错,问题往往不在库本身,而是出在头文件里混入了 FFI_SCOPE 和 FFI_LIB 这两个宏定义。要注意,这两个宏本来就是给 FFI::scope() 这种加载466 收藏 -
用 PHP 递归处理 JSON 日志中的密码、令牌和个人字段,兼顾嵌套数组、无效 UTF-8、null 值与审计可追溯性,给出可测试的脱敏边界。462 收藏 -
本文介绍一种高效算法,用两个阶段扫描判断含 *(可作左括号、右括号或空字符)的字符串是否能构成合法括号序列,核心是贪心匹配与逆向补配结合。 本文介绍一种高效算法,用两个阶段扫描判断含 `*`(可作左括号、右括号或空字符)的字符串是否能构成合法括号序列,核心是贪心匹配与逆向补配结合。在 PHP 里,像457 收藏 -
PHP 表单提交失败时,如果只在页面顶部显示一串错误,用户很难知道该改哪个输入框。本文用 session flash 保存一次性校验结果,再通过 aria-describedby 将错误消息绑定到对应字段,覆盖重定向、刷新、成功提交和无障碍检查。455 收藏 -
PHP Closure::bindTo 不只是换一个 $this:newThis 决定对象,newScope 决定 private/protected 可见范围。本文用订单快照示例说明作用域切换、返回 null 的边界,以及测试中如何避免越过公开接口。448 收藏 -
用 PHP PharData 处理 tar 备份时,不能只检查压缩包能否打开,还要逐条校验归档路径,拒绝 ../、绝对路径和解包目录外的目标。本文给出打包、检查和安全解包的可运行边界。447 收藏 -
PHP 8.5 扩展了 #[\Deprecated] 的使用范围。本文用用户级方法、类常量和 trait 做一套可复查的弃用工作流,说明告警触发、Reflection 验收与旧版本兼容边界。446 收藏 -
PHP 8.5 CLI 新增 --ini=diff,可以只显示偏离内置默认值的 INI 配置。本文用开发、测试和生产环境核对场景,说明它与 --ini、php -i 的区别、读取层次、对比方法和采用边界。446 收藏 -
文章 · php教程 | 2星期前 | 字符串 · utf-8 · php教程 · PHP 8.4 · 兼容改造 · 多字节字符串 PHP 8.4 mb_trim mb_ltrim mb_rtrim 全角空格
PHP 8.4 新增 mb_trim、mb_ltrim 和 mb_rtrim,可以按多字节字符安全清理首尾空白。本文用中文表单和 CSV 字段场景拆解全角空格、字符掩码、编码参数与 PHP 8.3 回退写法,给出可回归的边界检查。440 收藏 -
本文介绍如何在 PHP 中对带小数点(radix)的任意精度数值进行十进制与十六进制的高精度双向转换,解决 BCMath 缺乏进制转换支持的问题,并推荐成熟可靠的开源库方案。 本文介绍如何在 PHP 中对带小数点(radix)的任意精度数值进行十进制与十六进制的高精度双向转换,解决 BCMath 缺438 收藏 -
PHP 8.3 引入的 #[\Override] 可以在继承方法改名、接口调整或父类重构时尽早暴露契约断裂。本文用一个订单服务重构场景,拆解属性放置、编译期报错、接口实现和部署前回归检查。438 收藏 -
文章 · php教程 | 6天前 | 反射 · PHP · PHP 8.4 · ReflectionProperty · 属性钩子 · 反射 属性钩子 PHP 8.4 ReflectionProperty::isVirtual 虚拟属性
PHP 8.4 的属性钩子让属性可以只有 get 逻辑,但反射遍历时不能再把所有属性都当作有存储空间。本文用 ReflectionProperty::isVirtual 区分虚拟属性、带存储的 hooked 属性和普通属性,并给出兼容旧版本的检测边界。438 收藏 -
用 PHP Fiber 把一个长任务拆成可暂停的执行段,演示 Fiber::start、Fiber::suspend、Fiber::resume 与 Fiber::getReturn 的调用关系、返回值边界和异常处理。433 收藏