Google搜索

浏览存档

« 七月 2008  
周日 周一 周二 周三 周四 周五 周六
    1 2 3 4 5
6 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

用户登录

最新评论

在线用户

当前共有 0 users 和 4 guests 在线。

订阅到RSS阅读器

Syndicate content

PHP截取中文字符串方法

Written by dfar2008  in   2005 十一月 20 , 星期日 03:34

由于网站首页以及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.

Last Updated (2007 九月 21 , 星期五 15:32)

mb_substr

PHP 4.0.6 开始就支持多字节的截取,

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

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

epaulin