php教程技术文章
-
PHP-FPM 的 pm.max_children 不能只按 CPU 核数拍脑袋。本文从内存、CPU、数据库连接和排队风险四个约束估算起始值,再用 status 页面判断是否需要继续调整。132 收藏 -
用 ICU 规则字符串创建 PHP IntlRuleBasedBreakIterator,设置文本并读取边界与规则状态,同时说明 compiled 参数和中文分词边界。131 收藏 -
PHP 的 TCP 探活不该只看一个布尔值。本文用 stream_socket_client() 拆解 DNS、连接超时、端口拒绝、上下文参数和日志归因,给出可回归的最小检查器。130 收藏 -
PHP 8.5 的 #[\NoDiscard] 用来提醒调用方不要静默丢弃重要返回值。本文说明函数和方法的标记方式、void 显式忽略、接口与继承边界,以及兼容 PHP 8.4 及更早版本时的迁移检查。130 收藏 -
文章 · php教程 | 1个月前 | JSON · api设计 · php教程 · php json_encode JsonSerializable JSON_THROW_ON_ERROR jsonSerialize
PHP 对象实现 JsonSerializable 后,可用 jsonSerialize 显式选择、改名和组合 JSON 字段,并排除敏感属性。本文给出嵌套对象、错误处理与兼容策略的完整写法。129 收藏 -
用 PHP IntlDateFormatter 解析国际化日期时,setLenient(false) 可关闭宽松纠正,再结合 parse 返回值、offset 和 intl_get_error_code 判断非法日期与部分匹配。129 收藏 -
PHP stream_select 适合把多个非阻塞流放进同一等待循环。本文用 socket_pair 演示读写集合、超时返回值、EOF 与部分写入的判断,解释为什么每轮必须重建数组,避免 CPU 空转。128 收藏 -
用 PHP DOMDocument 解析不可信 XML 时,关键不是简单关闭一个开关,而是控制加载选项、保留解析错误并验证输入边界。本文对比 LIBXML_NONET、LIBXML_NO_XXE 与外部实体加载器的适用场景。128 收藏 -
PHP 8.6 将 Git 源码构建所需的最低 Autoconf 版本提高到 2.71。本文比较官方发布包、容器化构建和直接拉取源码三种路径,说明哪些环境需要升级以及上线前怎样检查。128 收藏 -
PHP 密码策略升级不需要一次性重置所有用户。先用 password_verify 验证旧哈希,再用 password_needs_rehash 判断算法或 cost 是否落后,并在同一次成功登录中原子更新密码哈希。126 收藏 -
文章 · php教程 | 3星期前 | 文件上传 · nginx · php-fpm · 故障排查 · php教程 · php-fpm session.upload_progress PHP上传进度 fastcgi_request_buffering 请求缓冲
PHP session.upload_progress 只有在 PHP 持续收到 multipart 请求体时才能更新。本文从表单字段、session 轮询、Nginx FastCGI 请求缓冲和清理边界逐层排查为什么进度只在完成时跳变。126 收藏 -
PHP 登录时升级旧密码哈希,要先区分 password_hash 生成的哈希和历史自定义格式:前者验证成功后用 password_needs_rehash 判断,后者用原规则验证成功后立即改存 password_hash,并用旧值条件更新避免并发覆盖。125 收藏 -
PHP 8.2 提供 SensitiveParameter 属性,用于避免密码、令牌等参数原值出现在异常堆栈中。本文从未标记参数的泄露风险讲起,说明属性写法、SensitiveParameterValue 的自动包装、手动取值边界,以及日志和第三方库仍需补做的脱敏检查。125 收藏 -
PHP Session cookie 可以在 session_start 前用 options 数组同时配置 SameSite、Secure 和 HttpOnly。本文说明 Lax 与 Strict 的选择、HTTPS 前提,以及 cookie 生命周期和服务端 Session 清理的区别。124 收藏 -
PHP json_encode 返回 false 时,先用 json_last_error_msg 定位原因,再按非法 UTF-8、递归引用、资源类型和深度问题选择修复方案。本文用一个小型接口示例收拢异常处理。124 收藏