php教程技术文章
-
DOMDocument 解析不可信 XML 时,默认不要打开实体替换和外部 DTD 加载;用 LIBXML_NONET 限制网络访问,并按 PHP/libxml 能力补充 LIBXML_NO_XXE。本文给出安全的最小配置、遗留 DTD 场景的隔离方式和升级检查清单。409 收藏 -
PHP OPcache 预加载适合放稳定、无请求状态且能跨请求复用的类和函数;本文给出 preload.php 配置、排除清单以及部署重启边界。409 收藏 -
PHP 8.4 的 Lazy Objects 通过 Lazy Ghost 和 Lazy Proxy 延迟创建实体。本文用最小示例说明初始化触发点、失败回滚、序列化、克隆、析构与对象身份边界。409 收藏 -
PHP CLI 长任务不应靠强制终止收尾。本文用 pcntl_signal 接住 SIGTERM,在批处理检查点记录停止请求,区分当前批次完成与进程退出,并给出可回滚、可验证的部署处理方式。408 收藏 -
PHP PDO 绑定 LIMIT 报类型错误,通常是参数按字符串传给了预处理语句。本文说明如何校验分页输入、使用 PDO::PARAM_INT 绑定 LIMIT/OFFSET,并避免 execute 参数覆盖已有绑定。408 收藏 -
文章 · php教程 | 2个月前 | nginx · php-fpm · php教程 · 故障复盘 · Nginx php-fpm 性能排查 PHP教程 502 Bad Gateway pm.max_children 慢日志
PHP-FPM 子进程打满时,502 往往不是单纯把 pm.max_children 调大就能解决。更稳的排查顺序是先看 Nginx upstream 错误和 FPM 状态页,再用慢日志找到长时间占用子进程的请求,最后把容量、慢查询、限流和告警一起补齐。407 收藏 -
PHP PDO 使用预处理语句时,先将输入归一化,再用 PDO::PARAM_INT、PDO::PARAM_STR 和 PDO::PARAM_NULL 显式绑定,避免整数、字符串与 NULL 语义被隐式转换。407 收藏 -
开启 PHP session.use_strict_mode 后,旧系统可能因手工预设未初始化 Session ID 而读不到登录前状态。本文解释 Cookie、有效 Session 和严格模式的关系,并给出先启动会话、登录后轮换 ID 的改法。404 收藏 -
filter_var 返回 true 只说明 URL 结构符合 PHP 的校验规则,并不代表主机可解析、协议可用或域名属于业务白名单。本文用 PHP 示例拆开三层判断,补上安全的 host 白名单写法。403 收藏 -
PHP 开启 pcntl_async_signals 后,信号处理器可能在主流程中被调度。本文用 pending 状态和 busy 标记把回调变成轻量入口,避免刷新任务重入。402 收藏 -
PHP 8 中读取自定义 attributes,核心是先用 Reflection 获取 ReflectionAttribute,再按名称筛选,最后在需要时调用 newInstance() 得到属性对象。398 收藏 -
PHP OPcache 的脚本缓存策略必须和部署后的 PHP worker 重载动作配套。本文按开发与生产环境拆分 validate_timestamps、revalidate_freq、reset、invalidate 与服务重启的职责,给出可执行的发布清单。397 收藏 -
PHP 8.2 的 Randomizer::pickArrayKeys 可以从关联数组中均匀抽取指定数量且互不重复的键名。本文说明参数边界、ValueError 处理和键名映射回业务值的写法。397 收藏 -
Vite 默认仅支持 index.html 作为 HTML 入口,但通过 vite-plugin-php 插件,可无缝将 index.php 设为入口,无需修改构建逻辑或手动处理 PHP 渲染。 Vite 默认仅支持 index.html 作为 HTML 入口,但通过 vite-plugin-php395 收藏 -
用 PDO::ATTR_DEFAULT_FETCH_MODE 在连接创建时统一默认返回形态,再用语句级 FETCH_* 覆盖特殊查询,避免项目里反复写 fetch 参数。395 收藏