我前些时间也遇到这个问题,在网上找了一段代码,可以截取指定长度的汉字.借花献佛了.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;
}

解决方案 »

  1.   

    我前些时间也遇到这个问题,在网上找了一段代码,可以截取指定长度的汉字.借花献佛了.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;
    }
      

  2.   

    我前些时间也遇到这个问题,在网上找了一段代码,可以截取指定长度的汉字.借花献佛了.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;
    }
      

  3.   

    不好使呀,报错,说最后一句的$tmpstr是个未定义的变量
      

  4.   

    echo substr("中华人民共和国", 0, 9).chr(0);
      

  5.   

    使用mbstring库里的函数,看一下phpinfo里是否安装了