php教程技术文章
-
PHP 的 SplFixedArray 适合长度可预估、只使用连续整数索引的数据;普通 array 更适合关联键、动态追加、删除和丰富的数组函数。选择时应先看数据结构约束,再考虑内存与迁移成本。281 收藏 -
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 收藏 -
本文详解如何在 MySQL 中对存储为 Unix 时间戳的日期字段,精准统计未来 1–7 天(仅按日期匹配,忽略时间)的记录数量,并修正因类型转换缺失导致的查询结果为 0 的常见错误。 本文详解如何在 MySQL 中对存储为 Unix 时间戳的日期字段,精准统计未来 1–7 天(仅按日期匹配,忽略时278 收藏 -
用 PHP Backed Enum 把数据库中的 string 或 int 状态安全映射为业务类型,明确 tryFrom、from、未知值、写回 value 与迁移回归边界。278 收藏 -
Composer 平台检查失败时,先区分依赖解析使用的模拟平台与服务器真实 PHP、扩展环境,再用 show --platform 和 check-platform-reqs 定位问题,避免用忽略参数掩盖生产缺项。278 收藏 -
Composer 的 files 适合每次引入自动加载器时加载的函数文件,classmap 适合无法遵循 PSR-4 的类;普通命名空间类优先 PSR-4。本文用配置示例和边界表说明如何选择。277 收藏 -
用 PHP mb_substr 按 UTF-8 字符截取中文,区分 strlen 的字节长度,处理 mbstring、空值、省略号和边界测试。277 收藏 -
批量导入校验里,str_contains 的空字符串行为很容易把缺失字段和任意内容混在一起。本文从一条失败记录开始,拆解 trim、str_contains 与 empty 的判断边界,并给出可回退到旧版 PHP 的写法。276 收藏 -
parse_ini_file 的默认扫描模式会把 on、off、数字和常量按 INI 规则转换,配置读取如果直接依赖字符串就容易出现类型漂移。本文用同一份 PHP 配置比较 NORMAL、RAW 与 TYPED 三种结果,并给出生产读取边界。276 收藏 -
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 收藏