zoukankan      html  css  js  c++  java
  • 截取中文字符加省略号

    /**
         * 可以统计中文字符串长度的函数
         * @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;
        }
  • 相关阅读:
    java 多线程 this
    sping PropertyPlaceholderConfigurer
    dubbo 各功能模块介绍及配置方式
    dubbo配置概述
    struts2 之 【struts2简介,struts2开发步骤,struts2详细配置,struts2执行流程】
    曾经,真的很喜欢你
    Arcgis for Javascript 对接iServer发布的Mapserver服务
    SuperMap iClient for JavaScript image出图
    SuperMap-iServer过滤请求返回值
    tomcat闪退解决
  • 原文地址:https://www.cnblogs.com/-mrl/p/7149093.html
Copyright © 2011-2022 走看看