欢迎来到福编程网,本站提供各种互联网专业知识!

php中截取字符串支持utf-8

发布时间:2007-01-18 作者: 来源:转载
截取字符串
截取字符串
$string="2006年4月我又长大了一岁!";
echosubstr($string,1)."...";
//截取字符串
functionSubstrGB($in,$num)
{
$pos=0;
$out="";
while($pos{
$c=substr($in,$pos,1);
if($c=="n")break;
if(ord($c)>128)
{
$out.=$c;
$pos++;
$c=substr($in,$pos,1);
$out.=$c;
}
else
{
$out.=$c;
}
$pos++;
if($pos>=$num)break;
}
return$out;
}
echoSubstrGB($string,8);
?>
/***************************************************************************
*cut_string.php
*------------------------------
*Date:Jul16,2005
*Copyright:none
*Mail:
*
*作用:截取中文字符.
*
*
***************************************************************************/
functioncut_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)returnjoin('',array_slice($t_string[0],$start,$sublen))."...";
returnjoin('',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);
}
if(ord(substr($string,$i,1))>129)$i++;
}
if(strlen($tmpstr)<$strlen)$tmpstr.="...";
return$tmpstr;
}
}
echo"

".cut_str($string,8,$start=0,$code='sdf');
?>

相关推荐