php中切割字符串有三个常用的函数,substr,mb_strsu" />

substr mb_substr iconv_substr 函数的区别

?substr mb_substr iconv_substr 函数的区别

$str = '这样一来我的字符串就不会有乱码^_^';

echo mb_substr($str, 0, 7, 'utf-8');
//结果:这样一来我的字
echo "
";

echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
//结果:这样
?>




php中切割字符串有三个常用的函数,substr,mb_strsub,iconv_substr.其中mb_strsub与iconv_substr有点相似,用法也一样,今天有时间就特地去探索一下他们有什么不同,最后得出结论是:

1:如果确定字符串中没有中文字符,用substr是最好的,效率提高3倍左右。
2:如果切割字符串的次数比较少(100次循环左右),iconv_substr会比mb_substr快。
3:iconv_substr切割字符所用的时间浮动比mb_substr比较大,iconv_substr完成1W次循环切割上下相差0.04秒左右秒,而mb_substr只差0.008秒左右。

应该如何选择呢?
1、iconv库在某些操作系统上可能运行不正确,需要安装GNU扩展库以保证它的正常运行。mb_substr函数的兼容性更好。
2、iconv函数会先将当前字符串转换为相应的编码再进行截取,而mb函数则是直接根据指定的编码进行截取(提供安全的多字节截取),所以mb函数的截取效率更高。
因此,mb_substr函数进行中文字符串的截取为最合适的选择。




相关文档
最新文档