PHP中文字符串截取函数的选择
通常,我们都知道使用php进行中文字符串的截取时,有两种选择:
<html>
<head><meta charset=\'utf-8\'><title>第一php网提供的教程--截取中文字符串</title>
</head>
<body>
<?php
$str=\'123我靠abc中国人\';
echo substr($str,0,4);
echo \'<br>\';
echo iconv_substr($str,0,4,\'utf-8\');
echo \'<br>\';
echo mb_substr($str,0,4,\'utf-8\');
?>
</body>
</html>
在上面的代码中,我们使用了两个函数iconv_substr和mb_substr,他们都可以在当前字符下进行字符串截取,以达到中文字符截取的不乱码。
那么我们应该选择哪一种呢?
1、根据PHP手册的说明,iconv库在某些操作系统上可能运行不正确,需要安装GNU扩展库以保证它的正常运行。这透露给我们的信息是mb函数的兼容性更好。
2、iconv函数会先将当前字符串转换为相应的编码再进行截取,而mb函数则是直接根据指定的编码进行截取【提供安全的多字节截取】,所以mb函数的截取效率更高。
因此,站长建议大家使用mb_substr函数来进行中文字符串的截取。