php教程技术文章
-
PHP array_filter 默认保留原数组键,但不带回调时会把 0、'0'、false、null 和空字符串一并视为空值。本文用严格回调保留零值,并说明按键过滤、键值同时判断以及 array_values 重排索引的边界。367 收藏 -
用 PHP curl_multi 管理多个独立请求,说明并发执行、完成结果读取、超时控制与资源释放的完整写法。371 收藏 -
PHP 异常链的关键是包装新异常时把底层 Throwable 传给构造器第三个参数,再用 getPrevious() 逐层读取。本文用分层服务示例说明保留原因、遍历链路和避免丢失上下文的边界。383 收藏 -
PHP Generator 可以把逐行读取改成惰性迭代:函数用 yield 每次产生一条记录,foreach 按需消费,配合 finally 关闭文件句柄,适合大文件顺序处理和找到目标即停止的场景。344 收藏 -
PHP preg_match 返回 1、0、false 三种结果,本文说明如何用严格比较区分无匹配和 PCRE 执行失败,并立即读取错误码与错误消息。380 收藏 -
PHP PDO 绑定 LIKE 查询时,SQL 只保留占位符,程序先按数据库规则转义用户输入中的百分号、下划线和反斜杠,再把完整模式值绑定进去。本文用包含、前缀和后缀匹配示例说明如何安全表达搜索意图。411 收藏 -
PHP parse_url 不会替 URL 自动补上协议默认端口。要区分未写端口和显式写出的默认端口,应读取完整数组并用 array_key_exists 判断 port 键;使用 PHP_URL_PORT 时,组件不存在会返回 null。451 收藏 -
外部字符串不能直接当作枚举 case 使用。本文用 PHP backed enum 的 from 与 tryFrom,拆开可信输入、非法值、缺省值和严格类型边界,给出可维护的字符串映射写法。445 收藏 -
array_column 使用 index_key 重建数组时,重复键不会自动合并记录,后来的值会覆盖前面的值。本文说明覆盖原因,并给出保留全部记录、保留最后一条和主动拒绝重复键的写法。221 收藏 -
mb_detect_encoding 编码候选判断教程:明确候选列表与严格模式,区分字节合法性、启发式猜测和来源事实,处理多候选、false 与乱码复查。421 收藏 -
PHP 8.3 新增的 json_validate() 只返回 JSON 语法是否有效,不构建数组或对象。本文讲清参数、错误信息、版本边界,以及何时不要先验证再解码。460 收藏 -
讲清 PHP stream_context_create 设置 HTTP 超时的嵌套位置、秒数单位、file_get_contents 返回值,以及超时和 HTTP 错误的排查边界。309 收藏 -
DOMDocument 处理 HTML fragment 时,普通 HTML 适合用临时根节点包装后解析,XML 兼容片段可以用 DOMDocumentFragment 和 appendXML。本文还说明 saveHTML、UTF-8、HTML4 解析规则与 PHP 8.4 HTML5 解析边界。377 收藏 -
PHP Fiber 中的恢复值和最终返回值不是同一个概念。本文用 start、suspend、resume、getReturn 和状态判断说明如何安全接收恢复入参,并在 Fiber 终止后读取回调 return。120 收藏 -
PHP 8.2 的 Randomizer 能通过固定随机引擎、种子和调用顺序生成可复现序列。本文比较 Mt19937、Xoshiro256StarStar 与 Secure 的使用边界,并给出测试隔离和常见误区。194 收藏