PHP中处理截取汉字,出现乱码问题的2个类
汉字|问题
function msubstr($str,$start,$len) {
$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;
}
-------------------------------------
$str="这个字符好长呀,'";
$Short_Str=showShort($str,4);//截取前面4个汉字,结果为:这个字符...
Echo "$Short_Str";
Function csubstr($str,$start,$len)
{
$strlen=strlen($str);
$clen=0;
for($i=0;$i{
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 = csubstr($str,0,$len);
if ($str$tempstr)
$tempstr .= "..."; //要以什么结尾,修改这里就可以.
return $tempstr;
}
上一篇: PHP实现获取真实客户端的真实IP