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函数来进行中文字符串的截取。

转自:http://www.phptogether.com/archives/12610

posted @ 2013-07-24 16:35  stma  阅读(245)  评论(0)    收藏  举报