• 截取中文字符加省略号


    /**
         * 可以统计中文字符串长度的函数
         * @param $str 要计算长度的字符串,一个中文算一个字符
         * @return int
         */
        public static function absLength($str)
        {
            if (empty($str)) {
                return 0;
            }
            if (function_exists('mb_strlen')) {
                return mb_strlen($str, 'utf-8');
            } else {
                preg_match_all("/./u", $str, $ar);
                return count($ar[0]);
            }
        }
    
        /**
         * utf-8编码下截取中文字符串,参数可以参照substr函数
         * @param $str 要进行截取的字符串
         * @param int $start 要进行截取的开始位置,负数为反向截取
         * @param $end 要进行截取的长度
         * @return bool|string
         */
        public static function utf8Substr($str, $start = 0, $end)
        {
            if (empty($str)) {
                return false;
            }
            if (function_exists('mb_substr')) {
                if (func_num_args() >= 3) {
                    $end = func_get_arg(2);
                    return mb_substr($str, $start, $end, 'utf-8');
                } else {
                    mb_internal_encoding("UTF-8");
                    return mb_substr($str, $start);
                }
    
            } else {
                $null = "";
                preg_match_all("/./u", $str, $ar);
                if (func_num_args() >= 3) {
                    $end = func_get_arg(2);
                    return join($null, array_slice($ar[0], $start, $end));
                } else {
                    return join($null, array_slice($ar[0], $start));
                }
            }
        }
    /**
         * 截取中文字符加省略号
         * @param $string
         * @param $start
         * @param null $length
         * @param string $suffix
         * @return bool|string
         */
        public static function mbSubString($string, $start, $length = null, $suffix = '...')
        {
            if ($length !== null) {
                $substr = self::utf8Substr($string, $start, $length);
                $str_length = self::absLength($string);
                if ($str_length > $length) {
                    $substr .= $suffix;
                }
            } else {
                $substr = self::utf8Substr($string, $start);
            }
            return $substr;
        }
  • 相关阅读:
    linux系统的nobody用户
    java包命名规则
    配置文件解析
    jps参数
    Java数据类型总结
    JSON与JAVA数据的相互转换
    maven中使用net.sf.json-lib
    设计 REST 风格的 MVC 框架
    Java 5种字符串拼接方式性能比较
    spring获取webapplicationcontext,applicationcontext几种方法详解
  • 原文地址:https://www.cnblogs.com/-mrl/p/7149093.html
Copyright © 2020-2023  润新知