分享一个多语言截取字符串功能

浏览:943 发布日期:2015/04/16 分类:系统代码 关键字: 多语言 截取字符串
在自己项目用到的哈,英文和中文往往字数不一样。用到多语言的项目记得收藏哦!~完全原创~
function msubstr($str, $start = 0, $length, $lenth2, $suffix = true) {
//$length 中文截取长度,$lenth2英文截取长度 $suffix 是否省略号
    $charset = 'utf-8';
    if (LANG_SET != 'zh') {
        $length = $lenth2;
    }
    $str = preg_replace("/(\<[^\<]*\>|\r|\n|\s|\[.+?\])/is", ' ', $str);
    if (function_exists("mb_substr"))
        $slice = mb_substr($str, $start, $length, $charset);
    elseif (function_exists('iconv_substr')) {
        $slice = iconv_substr($str, $start, $length, $charset);
        if (false === $slice) {
            $slice = '';
        }
    } else {
        $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
        $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
        $re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
        $re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
        preg_match_all($re[$charset], $str, $match);
        $slice = join("", array_slice($match[0], $start, $length));
    }
    $fix = '';
    if (LANG_SET == 'zh') {
        $slice = str_replace(' ', '', $slice);
        if (strlen($slice) > $length) {
            $fix = '...';
        }
    } else {
        if (strlen($str) > $lenth2) {
            $fix = '...';
        }
    }

    return $suffix ? $slice . $fix : $slice;
}
本文转自素材火 http://www.sucaihuo.com
有bug的联系我,赶紧纠正哈。。
评论( 相关
后面还有条评论,点击查看>>