字符截取,解决中文的截取问题
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
}
', $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
}
相关文章推荐
- 字符截取,解决中文的截取问题
- smarty截取中文字符乱码问题的解决支持utf-8编码
- PHP 字符截取 解决中文的截取问题,不用mb系列
- php 解决substr()截取中文字符乱码问题
- php 解决substr()截取中文字符乱码问题
- PHP 字符截取 解决中文的截取问题,不用mb系列
- 解决Smarty中truncate截取中文字符乱码问题
- 字符截取,解决中文的截取问题
- php 中文字符入库或显示乱码问题的解决方法
- JSP解决地址栏中传递中文字符乱码的问题
- php 中文字符入库或显示乱码问题的解决方法
- JSP解决地址栏中传递中文字符乱码的问题
- my.ini 文件 解决mysql无法存储中文字符问题
- 两种php中文字符转拼音问题解决方法
- php中文字符串截取乱码问题解决
- php smarty截取中文字符乱码问题?gb2312/utf-8
- MySQL字符集中文乱码终极解决方案和mysql查询中文问题解决方法[转贴]
- 理解SQLSERVER中的排序规则,解决无法正确显示中文字符的问题
- androidstudio检测代码内的中文字符(解决安卓国际化修改字符问题)
- php smarty截取中文字符乱码问题?gb2312/utf-8