您的位置:首页 > 其它

字符截取,解决中文的截取问题

2013-11-23 14:33 302 查看
1 public function cutStr($string, $start ,$sublen, $extstring='

', $code = 'UTF-8')
2

{
3

if ($code == 'UTF-8')
4

{
5

$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]/";
6

preg_match_all($pa, $string, $t_string);
7

if(count($t_string[0]) - $start > $sublen)
8

return join('', array_slice($t_string[0], $start, $sublen)).$extstring;
9

return join('', array_slice($t_string[0], $start, $sublen));
10

} else {
11

$start = $start*2;
12

$sublen = $sublen*2;
13

$strlen = strlen($string);
14

$tmpstr = '';
15

for($i=0; $i<$strlen; $i++)
16

{
17

if($i>=$start && $i<($start+$sublen))
18

{
19

if(ord(substr($string, $i, 1))>129)
20

{
21

$tmpstr.= substr($string, $i, 2);
22

} else {
23

$tmpstr.= substr($string, $i, 1);
24

}
25

}
26

if(ord(substr($string, $i, 1))>129) $i++;
27

}
28

if(strlen($tmpstr)<$strlen ) $tmpstr.= $extstring;
29

return $tmpstr;
30

}
31

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: