php教程技术文章
-
文章 · php教程 | 1个月前 | 重定向 · PHP · 后端开发 · PHP 8.5 · URL安全 · URL规范化 PHP 8.5 URI扩展 重定向白名单 Uri\Rfc3986\Uri
PHP 8.5 新增内置 URI 扩展,可按 RFC 3986 和 WHATWG URL 标准解析、规范化并修改地址。以登录回跳为例,本文给出基于 Uri\Rfc3986\Uri 的 scheme 与 host 白名单写法、旧 parse_url() 方案的边界,以及上线前的兼容性检查。130 收藏 -
PHP 的 TCP 探活不该只看一个布尔值。本文用 stream_socket_client() 拆解 DNS、连接超时、端口拒绝、上下文参数和日志归因,给出可回归的最小检查器。130 收藏 -
PHP stream_select 适合把多个非阻塞流放进同一等待循环。本文用 socket_pair 演示读写集合、超时返回值、EOF 与部分写入的判断,解释为什么每轮必须重建数组,避免 CPU 空转。128 收藏 -
文章 · php教程 | 4天前 | php教程 · 安全边界 · DOMDocument · XML解析 · php XML安全 DOMDocument LIBXML_NONET LIBXML_NO_XXE
用 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 中对带小数点(radix)的任意精度数值进行十进制与十六进制的高精度双向转换,解决 bcmath 缺乏进制转换能力的问题,并推荐成熟、可部署于共享主机的纯 PHP 解决方案。 本文介绍如何在 PHP 中对带小数点(radix)的任意精度数值进行十进制与十六进制的高精度双向转换118 收藏 -
文章 · php教程 | 2星期前 | WEB开发 · 文件上传 · PHP · 安全校验 · Fileinfo · PHP 文件上传 move_uploaded_file MIME finfo_file is_uploaded_file
PHP 文件上传不能只看扩展名和浏览器传来的 MIME 字段。本文用 finfo_file() 检查临时文件的真实类型,再配合大小、错误码、is_uploaded_file() 和 move_uploaded_file() 建立一条可验证的上传边界,并说明校验通过后仍要如何限制保存路径和访问方式。117 收藏 -
文章 · php教程 | 1星期前 | PHP · 日期时间 · DatePeriod · PHP 8.2 · 时间区间 · php DateInterval DatePeriod INCLUDE_END_DATE 日期区间
PHP DatePeriod 默认不把结束日期放进迭代结果。本文用按天生成账单日期的例子说明 INCLUDE_END_DATE、EXCLUDE_START_DATE 的组合、PHP 版本边界和可复现的遍历验收。114 收藏 -
PHP 8.4 新增 mb_ucfirst(),可以按多字节字符安全处理标题首字母。本文从 UTF-8 标题清洗场景出发,核对编码、空字符串、null 参数和 PHP 8.3 兼容写法,给出可回归的最小实现。111 收藏 -
preg_match 配合 PREG_OFFSET_CAPTURE 返回的是匹配文本和字节偏移,不是中文字符下标。本文用 UTF-8 文本拆解偏移量、mb_substr 截取和 offset 参数的校验边界。111 收藏 -
PHP 8.4 与 8.5 的 #[\Deprecated] 支持范围不同。本文从旧 API 迁移现场出发,用函数、trait、类常量和全局常量示例,验证弃用信号、Reflection 与版本兼容边界。107 收藏 -
PHP match 没有命中任何分支时会抛出 UnhandledMatchError。本文用状态映射示例说明何时保留异常、何时增加 default,并给出输入校验与测试边界。107 收藏 -
文章 · php教程 | 1星期前 | HTTP · 文件上传 · PHP · PHP 8.4 · multipart/form-data PHP 8.4 request_parse_body PUT文件上传
PHP 8.4 的 request_parse_body() 让 PUT、PATCH 等非 POST 请求也能解析表单和文件。用一个可运行的小接口说明请求体只能读取一次、上传大小覆盖和失败验收。106 收藏 -
PHP 8.3 的 readonly class 适合承载不可变请求 DTO,但它不会自动完成 JSON 类型校验。本文从订单请求反序列化出发,说明构造器边界、字段校验、异常响应与版本兼容检查。105 收藏