php教程技术文章
-
说明SplFixedArray缩容丢弃尾部、越界读取与扩容补null的差别,并给出尾部备份示例和对象引用处理建议。286 收藏 -
PHP session 过期后的回跳应保存短期路由意图,而非恢复旧登录态。本文用服务端白名单映射和一次消费函数,解释重定向、POST、多标签页及目标授权边界。285 收藏 -
PHP SplFileObject 读取 TSV 时,关键是把制表符设置为单字节分隔符,并显式传入 escape 参数。本文用 READ_CSV 和 fgetcsv 两种写法说明如何逐行得到字段数组、按列访问数据,以及如何处理表头、空行和末尾行。285 收藏 -
PHP 处理百万行 CSV 的关键不是把文件换成生成器语法,而是建立流式读取、单行编码规范化与异常旁路三个边界。本文给出可直接改造的 fgetcsv + Generator 写法,并解释 BOM、源编码、列数错误、空行、批量写入与内存反例。284 收藏 -
PHP FFI 的 CData 对象、派生指针与本地库内存可能拥有不同生命周期。本文给出所有权判定、释放配对、封装写法和回归清单。284 收藏 -
PHP finfo_file 可以从上传临时文件内容识别 MIME 类型。本文解释参数、返回值和异常边界,并给出与服务端允许列表结合的 PHP 写法。284 收藏 -
PHP PDO 读取结果集指定行时,要在 prepare 阶段声明 PDO::CURSOR_SCROLL,再用 PDO::FETCH_ORI_ABS 和绝对行号调用 fetch;同时处理驱动支持、稳定排序、越界返回 false 与 closeCursor() 边界。282 收藏 -
PHP cURL 中 CURLOPT_CONNECTTIMEOUT 约束建立连接的等待时间,CURLOPT_TIMEOUT 约束整个传输。本文用错误码和 curl_getinfo 时间字段区分 DNS、连接、等待响应与接收响应阶段。280 收藏 -
PHP 处理日志、CSV 或导出文本时,可以用 Generator 配合 fopen()、fgets() 按行提供数据,避免先用 file() 或 explode() 把整个大文件装进数组。本文给出资源释放、EOF、换行和消费端批处理的完整边界。280 收藏 -
PHP DateTimeImmutable 直接加一个月时,月末日期可能溢出到下个月。本文用代码说明默认规则,并给出 last day of、DateInterval、不可变对象和边界测试的处理方法。280 收藏 -
Composer 平台检查失败时,先区分依赖解析使用的模拟平台与服务器真实 PHP、扩展环境,再用 show --platform 和 check-platform-reqs 定位问题,避免用忽略参数掩盖生产缺项。278 收藏 -
Symfony Yaml 解析多行字符串时,最容易混淆的是 | 与 > 的换行语义,以及缩进和未加引号值的类型识别。本文用 PHP 示例说明如何稳定处理多行文本、日期样式和生成配置。276 收藏 -
PHP IntlGregorianCalendar 可以用 setGregorianChange 设置公历切换时间,用 getGregorianChange 读取当前时间戳。本文比较三种创建方式,并说明时区、locale、Unix 时间戳和返回值的使用边界。273 收藏 -
文章 · php教程 | 3天前 | PHP · 迁移 · php password_hash password_needs_rehash PASSWORD_DEFAULT PASSWORD_ARGON2ID PASSWORD_BCRYPT
PHP password_hash 的可迁移选择重点不是永远固定某个算法,而是为 PASSWORD_DEFAULT 预留足够字段长度,并根据环境能力评估 Argon2id 或 bcrypt。本文给出参数边界、72 字节限制、PHP 8.4 cost 变化和登录成功后的渐进重哈希写法。273 收藏 -
PHP Fiber 不会自动把阻塞 I/O 变成异步,却能把回调结果通过 suspend、resume 与 throw 交回同步调用栈。本文用最小事件循环实现 await 适配器,并说明异常传播和生产边界。272 收藏