PHP截取中文字符串的方法有:mb_substr():通用且推荐,参数包括字符串、起始索引、截取字符数和编码。iconv_substr():用于转换和截取,参数包括字符串、起始索引、截取字节数、源编码和目标编码。substr():在某些情况下可用,默认使用 UTF-8 编码,但处理多字节字符可能产生意外结果。

PHP如何截取中文
前言
截取中文字符串是Web开发中的常见需求。PHP提供了多种方法来实现这一功能。
方法 1:mb_substr() 函数
最通用且推荐的方法是使用 mb_substr() 函数,它带有以下参数:
立即学习“PHP免费学习笔记(深入)”;
-
$str: 要截取的字符串。 -
$start: 起始索引。 -
$length: 要截取的字符数。 -
$encoding(可选):字符串的编码(默认为 UTF-8)。
例如:
<code class="php">$string = '中文字符串'; $start = 0; $length = 3; $result = mb_substr($string, $start, $length); echo $result; // 输出:中</code>
方法 2:iconv_substr() 函数
iconv_substr() 函数与 mb_substr() 类似,用于转换和截取字符串。它接受以下参数:
-
$str: 要截取的字符串。 -
$start: 起始索引。 -
$length: 要截取的字节数。 -
$encoding: 源编码。 -
$target_encoding: 目标编码(默认为 UTF-8)。
例如:
<code class="php">$string = iconv('UTF-8', 'GBK', '中文字符串');
$start = 0;
$length = 6;
$result = iconv_substr($string, $start, $length, 'GBK');
echo $result; // 输出:中文</code>方法 3:substr() 函数
在某些情况下,可以使用 substr() 函数来截取中文字符串,因为它默认使用 UTF-8 编码。但是,如果字符串包含多字节字符(如中文),它可能会产生意外的结果。
例如:
<code class="php">$string = '中文字符串'; $start = 0; $length = 3; $result = substr($string, $start, $length); echo $result; // 输出:中?</code>
注意事项
- 确保字符串以正确的编码存储。
- 使用
mb_strlen()函数获取字符串的长度,而不是strlen()函数,以正确处理多字节字符。 - 如果使用
iconv_substr(),请指定正确的源和目标编码。











