中文字符串截取函数

2005-04-19 17:06:35 PHP Views(1997)

<?php
#$start为起始位置,默认为0
#$len为截取长度,如遇半个汉字,则自动降低长度而不是取整个汉字,保证了不会超过规定的长度
*/
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;
}

//-------------------------------------------------
//示例
echo substr_cn("123as中国PHP联盟",9,1);
echo "
";
echo substr_cn("123as中国PHP联盟",10);

?>

Comments

Leave a Comment

Name
Content
Verification Type the characters you see in the picture below