php截取汉字字符串

0xa0是什么意思?

$str="这是需要截取的字符串。哈哈哈,哟哟哟";
$Short_Str=showShort($str,4);//截取前面4个汉字,结果为:这是需要…
echo $Short_Str;

//函数
function cut_str($str,$start,$len){
$strlen=strlen($str);
$clen=0;
for($i=0;$i<$strlen;$i++,$clen++){
if ($clen>=$start+$len)
break;
if(ord(substr($str,$i,1))>0xa0){
if ($clen>=$start)
$tmpstr.=substr($str,$i,2);
$i++;
}else{
if ($clen>=$start)
$tmpstr.=substr($str,$i,1);
}
}
return $tmpstr;
}

//免费赠送一个函数,作用是如果截取后的字符串比原先短(即有截掉部分),那么在结果字符串后面加省略号
function showShort($str,$len){
$tempstr = cut_str($str,0,$len);
if ($str<>$tempstr)
$tempstr .= "…";
return $tempstr;
}

//更简洁的一个方法
$len=10;
$text="怎么将新闻的很长的标题只显示前面一些字,后面用…来代替?";
echo strlen($text)<=$len?$text:(substr($text,0,$len).chr(0)."…");

cut_str

您的赞助将会支持作者创作及本站运维

发表评论


TOP