PHP 截取字符串专题
2020-12-13 06:09
标签:c code tar a string art 1. 截取GB2312中文字符串 //截取中文字符串 2. 截取utf8编码的多字节字符串 //截取utf8字符串 function cut_str($string, $sublen, $start = 0, $code =
‘UTF-8‘) function sysSubStr($String,$Length,$Append =
false) PHP 截取字符串专题,搜素材,soscw.com PHP 截取字符串专题 标签:c code tar a string art 原文地址:http://www.cnblogs.com/wayne173/p/3741860.html
function mysubstr($str, $start, $len)
{
$tmpstr = "";
$strlen =
$start + $len;
for($i = 0; $i if(ord(substr($str, $i, 1))
> 0xa0)
{
$tmpstr
.= substr($str, $i,
2);
$i++;
}
else
$tmpstr
.= substr($str, $i,
1);
}
return
$tmpstr;
}
?>
function utf8Substr($str, $from,
$len)
{
return
preg_replace(‘#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,‘.$from.‘}‘.
‘((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,‘.$len.‘}).*#s‘,
‘$1‘,$str);
}
?>
3.
UTF-8、GB2312都支持的汉字截取函数
{
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 {
if($i>=$start
&& $i {
if(ord(substr($string,
$i,
1))>129)
{
$tmpstr.=
substr($string, $i,
2);
}
else
{
$tmpstr.=
substr($string, $i,
1);
}
}
if(ord(substr($string,
$i, 1))>129)
$i++;
}
if(strlen($tmpstr) return
$tmpstr;
}
}
$str =
"abcd需要截取的字符串";
echo cut_str($str, 8, 0, ‘gb2312‘);
?>
4. BugFree
的字符截取函数
{
if (strlen($String) {
return
$String;
}
else
{
$I
= 0;
while ($I {
$StringTMP
=
substr($String,$I,1);
if
( ord($StringTMP) >=224
)
{
$StringTMP
=
substr($String,$I,3);
$I
= $I +
3;
}
elseif(
ord($StringTMP) >=192
)
{
$StringTMP
=
substr($String,$I,2);
$I
= $I +
2;
}
else
{
$I
= $I +
1;
}
$StringLast[]
=
$StringTMP;
}
$StringLast
=
implode("",$StringLast);
if($Append)
{
$StringLast
.=
"...";
}
return
$StringLast;
}
}
echo sysSubStr("CodeBit.cn --
简单、精彩、通用",18,false);
?>