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;
}
|
哈尔滨品用软件有限公司致力于为哈尔滨的中小企业制作大气、美观的优秀网站,并且能够搭建符合百度排名规范的网站基底,使您的网站无需额外费用,即可稳步提升排名至首页。欢迎体验最佳的哈尔滨网站建设。