使用substr()和mb_substr()可实现PHP字符串截取,前者适用于单字节字符,后者支持多字节如中文;结合explode()或strpos()按分隔符提取;生成摘要时用mb_substr()安全截断并添加省略号。

在PHP开发中,字符串截取是常见的操作,尤其在处理文本内容、生成摘要或提取特定信息时非常实用。PHP提供了多种方式来实现字符串截取,每种方法适用于不同场景。下面详细介绍常用的方法和注意事项,帮助你灵活掌握字符串截取技巧。
substr() 是PHP中最常用的字符串截取函数,可以根据指定的起始位置和长度提取子字符串。
基本语法:substr(string $string, int $start, ?int $length = null)
示例:
立即学习“PHP免费学习笔记(深入)”;
substr("Hello World", 0, 5); // 返回 "Hello"
substr("Hello World", -5); // 返回 "World"
substr("Hello World", 6, 3); // 返回 "Wor"
当字符串包含中文、日文等多字节字符时,substr() 可能会截断字节导致乱码。应使用 mb_substr() 函数,它是多字节安全的。
基本语法:mb_substr(string $str, int $start, ?int $length = null, ?string $encoding = null)
示例:
立即学习“PHP免费学习笔记(深入)”;
mb_substr("你好世界", 0, 2, 'UTF-8'); // 返回 "你好"
mb_substr("你好世界", 1, 3, 'UTF-8'); // 返回 "好世"
如果不指定编码,PHP会使用内部编码,可能引发意外结果,所以推荐始终传入 'UTF-8'。
有时需要按特定字符(如空格、逗号、句号)截取字符串的一部分,可以结合 explode() 或 strpos() 实现。
示例:
立即学习“PHP免费学习笔记(深入)”;
$email = "user@example.com";
$username = explode("@", $email)[0]; // 得到 "user"
$pos = strpos($email, "@");
$domain = substr($email, $pos + 1); // 得到 "example.com"
在生成内容摘要时,常需限制字符数并在末尾加“...”。注意避免截断HTML标签或中文字符。
推荐做法:示例函数:
function getExcerpt($text, $maxLength = 100) {
if (mb_strlen($text, 'UTF-8')
return $text;
}
return mb_substr($text, 0, $maxLength, 'UTF-8') . '...';
}
这样可避免对短文本误加省略号,同时保证多语言支持。
基本上就这些。掌握 substr、mb_substr 和结合分隔符的截取方法,就能应对大多数字符串处理需求。关键是根据字符类型选择合适函数,尤其是中文环境务必使用 mb_* 系列函数。
以上就是PHP如何截取字符串_字符串截取操作完整指南的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号