UTF-8、GB2312 都支持的汉字截取函数:
复制代码
代码如下:
<?php
/*
Utf-8、gb2312 都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为
utf-8
开始长度默认为
0
*/
function
cut_str(
$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);
}
}