php substr 具体实现
substr 函数的基本用法
PHP 的 substr 函数用于截取字符串的一部分。其基本语法如下:
substr(string $string, int $start, ?int $length = null): string
$string:要截取的目标字符串。$start:起始位置,从 0 开始计数;若为负数,则从字符串末尾倒数。$length(可选):截取的长度;若为负数,表示从末尾忽略的字符数;若省略,则截取到字符串末尾。
参数示例
正数起始位置
$str = "Hello, World!";
echo substr($str, 7); // 输出 "World!"
从第 7 个字符(W)开始截取到末尾。
负数起始位置
echo substr($str, -6); // 输出 "World!"
从倒数第 6 个字符(W)开始截取到末尾。
指定长度
echo substr($str, 7, 5); // 输出 "World"
从第 7 个字符开始截取 5 个字符。
负数字符长度
echo substr($str, 0, -7); // 输出 "Hello,"
从开头截取,忽略末尾 7 个字符。
边界处理
- 若
$start超出字符串长度,返回空字符串。 - 若
$length为 0 或导致无效范围,返回空字符串。
多字节字符串支持
对于包含多字节字符(如中文)的字符串,建议使用 mb_substr 函数以避免乱码:
mb_substr("你好世界", 2, 2); // 输出 "世界"
实际应用示例
截取用户输入的前 10 个字符并添加省略号:
$text = "This is a long text that needs truncation.";
$shortText = substr($text, 0, 10) . '...';
echo $shortText; // 输出 "This is a ..."
通过合理使用 substr 可以高效处理字符串截取需求,但需注意参数范围和字符编码问题。







