PHP 7.4 中用 substr() 截取字符串中间段需正确设置起始位置和长度参数,如 substr("HelloWorld", 2, 4) 返回 "loWo";含中文时应使用 mb_substr() 避免乱码。

PHP 7.4 中用 substr() 截取字符串中间一段,关键在于正确设置起始位置和长度参数。
基本语法:从指定位置开始截取指定长度
substr($string, $start, $length) 是核心用法:
- $string:要处理的原始字符串
- $start:起始偏移量(从 0 开始;负数表示从末尾倒数)
- $length:要截取的字符数(可选;负数表示截到倒数第几个之前)
截取中间固定位置的一段(推荐方式)
比如字符串 "HelloWorld",想截取第 3 到第 6 个字符(即 "loWo",按人类习惯从 1 数:第3位是 l,第6位是 o):
注意:PHP 索引从 0 开始,所以第 3 位对应 $start = 2;共 4 个字符 → $length = 4:
立即学习“PHP免费学习笔记(深入)”;
substr("HelloWorld", 2, 4); // 返回 "loWo"
用负数起始位置截取靠后的一段
例如取最后 5 个字符:
substr("HelloWorld", -5); // 返回 "World"
取倒数第 7 位开始、共 3 个字符(即 "llW"):
substr("HelloWorld", -7, 3); // 返回 "llW"
安全截取:避免越界或乱码(尤其含中文)
PHP 的 substr() 按字节操作,对 UTF-8 中文可能截断乱码。稳妥做法:
- 用
mb_substr()替代(需开启 mbstring 扩展) - 指定编码:
mb_substr($str, $start, $length, 'UTF-8')
mb_substr("你好世界", 1, 2, 'UTF-8'); // 返回 "好世"



















