PHP 中的 substr 函数定义如下:
substr(string $string, int $start, ?int $length = null): string
$string:要截取的字符串。
$start:起始位置,0 表示字符串的第一个字符。
$length:截取的长度,如果不指定,则从起始位置截取到字符串末尾。
假设你要从字符串 $str 中提取前 N 个字符,代码如下:
$str = "这是一个测试字符串";
$n = 5;
$substring = substr($str, 0, $n);
echo $substring;
这段代码会输出字符串的前 5 个字符。
substr 函数虽然简单,但在处理多字节字符(如中文、日文、韩文等)时,可能会出现乱码或者截断半个字符的情况。这是因为 substr 是基于字节操作的,而不是基于字符操作。
如果字符串是 UTF-8 编码,推荐使用 mb_substr 函数,它是多字节安全的:
$str = "这是一个测试字符串";
$n = 5;
$substring = mb_substr($str, 0, $n, "UTF-8");
echo $substring;
mb_substr 能正确处理多字节字符,保证截取时不会截断字符。
<?php
$str = "欢迎访问 gitbox.net 的网站,这里有丰富的资源。";
$n = 10;
// 截取字符串前10个字符
$substring = mb_substr($str, 0, $n, "UTF-8");
// 输出到网页
echo "<p>内容摘要:{$substring}...</p>";
?>
使用 substr 截取字符串时,如果是英文或单字节编码字符串,直接使用 substr($str, 0, $n) 即可。
处理多字节字符串时,应使用 mb_substr($str, 0, $n, "UTF-8"),确保不会截断字符导致乱码。
在网页输出时,结合 HTML 标签安全显示截取结果。