易客CRM,中小企业最忠实的合作伙伴!

PHP截取中文字符串方法

551℃

由于网站首页以及vTigerCRM里经常在截取中文字符串时出现乱码(使用substr),今天找到一个比较好的截取中文字符串方法,在此与大家共享。

function msubstr($str, $start, $len) {
    $tmpstr = "";
    $strlen = $start + $len;
    for($i = 0; $i < $strlen; $i++) {
        if(ord(substr($str, $i, 1)) > 0xa0) {
            $tmpstr .= substr($str, $i, 2);
            $i++;
        } else
            $tmpstr .= substr($str, $i, 1);
    }
    return $tmpstr;
}

 更新:可以采用epaulin的建议,使用mb_substr方法替换上面的方法,效率应该会高一些,特别是从中间位置截取utf8多字节的字符串时,但有一个前提是php需激活mb_string,注意internal coding.

转载请注明:易客CRM官方博客 » PHP截取中文字符串方法

喜欢 (0)or分享 (0)
  1. mb_substr
    PHP 4.0.6 开始就支持多字节的截取,

    string mb_substr ( string str, int start [, int length [, string encoding]] )
    

    encoding 用 GB2312 即可,只是大多数虚拟主机默认没有打开这个扩展。

    epaulin