我前些时间也遇到这个问题,在网上找了一段代码,可以截取指定长度的汉字.借花献佛了.function substr_cn($str,$len,$start=0)
{
$strlen=strlen($str);
for($i=0;$i<$strlen;$i++)
{
if($i>=$start&&$i<($start+$len))
{
if(ord(substr($str,$i,1))>0xa1)
{
$tmpstr.=substr($str,$i,2);
$i++;
}
else
$tmpstr.=substr($str,$i,1);
} }
if(strlen($tmpstr)>$len)
{
$len--;
return substr_cn($str,$len,$start);
}
return $tmpstr;
}
{
$strlen=strlen($str);
for($i=0;$i<$strlen;$i++)
{
if($i>=$start&&$i<($start+$len))
{
if(ord(substr($str,$i,1))>0xa1)
{
$tmpstr.=substr($str,$i,2);
$i++;
}
else
$tmpstr.=substr($str,$i,1);
} }
if(strlen($tmpstr)>$len)
{
$len--;
return substr_cn($str,$len,$start);
}
return $tmpstr;
}
{
$strlen=strlen($str);
for($i=0;$i<$strlen;$i++)
{
if($i>=$start&&$i<($start+$len))
{
if(ord(substr($str,$i,1))>0xa1)
{
$tmpstr.=substr($str,$i,2);
$i++;
}
else
$tmpstr.=substr($str,$i,1);
} }
if(strlen($tmpstr)>$len)
{
$len--;
return substr_cn($str,$len,$start);
}
return $tmpstr;
}
{
$strlen=strlen($str);
for($i=0;$i<$strlen;$i++)
{
if($i>=$start&&$i<($start+$len))
{
if(ord(substr($str,$i,1))>0xa1)
{
$tmpstr.=substr($str,$i,2);
$i++;
}
else
$tmpstr.=substr($str,$i,1);
} }
if(strlen($tmpstr)>$len)
{
$len--;
return substr_cn($str,$len,$start);
}
return $tmpstr;
}