转:
改进的中文字符串截取函数
看了znsoft的<<字符串截取函数中文版>>后,做了一些改进。
//-----------------------中文字符串截取----------------
function csubstr($str,$start,$len)
{
$strlen=strlen($str);
if ($start>=$strlen)
return $str;
$clen=0;
for($i=0;$i<$strlen;$i++,$clen++)
{
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);
}
if ($clen>=$start+$len)
break;
}
return $tmpstr;
}
//-------------------------------------------------
//示例
echo csubstr("123中国人",0,4);
echo csubstr("123中国人",2,4);
改进的中文字符串截取函数
看了znsoft的<<字符串截取函数中文版>>后,做了一些改进。
//-----------------------中文字符串截取----------------
function csubstr($str,$start,$len)
{
$strlen=strlen($str);
if ($start>=$strlen)
return $str;
$clen=0;
for($i=0;$i<$strlen;$i++,$clen++)
{
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);
}
if ($clen>=$start+$len)
break;
}
return $tmpstr;
}
//-------------------------------------------------
//示例
echo csubstr("123中国人",0,4);
echo csubstr("123中国人",2,4);
/*_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
mb_substr字符的截取,不会出现乱码.他是一个一个字符算的.需要加载mbstring在php.ini中
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-*/
echo mb_substr("啊方腊qwerq十分可;",0,5);
?>