• php截取包含中英文的字符串固定长度


    我们经常会遇到需要截取字符串(含中文汉字)长度的情况,比如标题显示不能超过多少字符,超出的长度用…表示,以下函数可以满足你的需求。
    
    /* 
     Utf-8、gb2312都支持的汉字截取函数 
     cut_str(字符串, 截取长度, 开始长度, 编码); 
     编码默认为 utf-8 
     开始长度默认为 0 
    */ 
    function cutStr($string, $sublen, $start = 0, $code = 'UTF-8'){ 
        if($code == 'UTF-8'){ 
            $pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/"; 
            preg_match_all($pa, $string, $t_string); 
    
            if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."..."; 
            return join('', array_slice($t_string[0], $start, $sublen)); 
        }else{ 
            $start = $start*2; 
            $sublen = $sublen*2; 
            $strlen = strlen($string); 
            $tmpstr = ''; 
    
            for($i=0; $i<$strlen; $i++){ 
                if($i>=$start && $i<($start+$sublen)){ 
                    if(ord(substr($string, $i, 1))>129){ 
                        $tmpstr.= substr($string, $i, 2); 
                    }else{ 
                        $tmpstr.= substr($string, $i, 1); 
                    } 
                } 
                if(ord(substr($string, $i, 1))>129) $i++; 
            } 
            if(strlen($tmpstr)<$strlen ) $tmpstr.= "..."; 
            return $tmpstr; 
        } 
    }
    
    使用方法如下:
    $str = "jQuery插件实现的加载图片和页面效果"; 
    echo cutStr($str,16);
  • 相关阅读:
    2019春第三次课程设计实验报告
    2019春第二次课程设计实验报告
    2019春第一次课程设计实验报告
    第十二周总结
    第十一周总结
    第五周课程总结&试验报告(三)
    第四周课程总结&实验报告(二)
    第三周课程总结&实验报告一
    第二周学习总结
    19春总结
  • 原文地址:https://www.cnblogs.com/gyrgyr/p/13802056.html
Copyright © 2020-2023  润新知