utf-8格式的文本在进行字符串截取时容易出现截到一部分的情况,而且容易出现乱码,这一个比较简单的函数,需要php开启mbstring扩展
$text是要截取的文本,$length是截取的长度,$suffix表示是否截取后带省略号
| 
						 
							1
						 
						
							2
						 
						
							3
						 
						
							4
						 
						
							5
						 
						
							6
						 
						
							7
						 
						
							8
						 
						
							9
						 
						
							10
						 
						
							11
						 
						
							12
						 
						
							13
						 
						
							14
						 
						
							15
						 
						
							16
						 
						
							17
						 
						
							18
						 
						
							19
						 
						
							20
						 
						
							21
						 
						
							22
						 
						
							23
						 
						
							24
						 
						
							25
						 
						
							26
						 
					 | 
					
						 
								/**
							 
							
								     * 字符串截取,支持中文和其他编码
							 
							
								     * @static
							 
							
								     * @access public
							 
							
								     * @param string $str 需要转换的字符串
							 
							
								     * @param string $start 开始位置
							 
							
								     * @param string $length 截取长度
							 
							
								     * @param string $charset 编码格式
							 
							
								     * @param string $suffix 截断显示字符
							 
							
								     * @return string
							 
							
								     */
							 
							
								    staticpublicfunctionmsubstr($str,$start=0,$length,$charset="utf-8",$suffix=true) {
							 
							
								        if(function_exists("mb_substr"))
							 
							
								            $slice= mb_substr($str,$start,$length,$charset);
							 
							
								        elseif(function_exists('iconv_substr')) {
							 
							
								            $slice= iconv_substr($str,$start,$length,$charset);
							 
							
								        }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));
							 
							
								        }
							 
							
								        return$suffix?$slice.'.':$slice;
							 
							
								    }
							 
						 | 
				
哈尔滨品用软件有限公司致力于为哈尔滨的中小企业制作大气、美观的优秀网站,并且能够搭建符合百度排名规范的网站基底,使您的网站无需额外费用,即可稳步提升排名至首页。欢迎体验最佳的哈尔滨网站建设。
