快捷搜索:   nginx

php mb_substr

大家好 !有个问题想请教一下 ,就是我在php的页面某个新闻的板块 。我想通过判断长度如果超过某个值的时候,就用...来填充超过长度范围的值。我知道有个函数可以判断的,就是通过strlen()。但是这样好像不行的,中文算一个字符固然没错;但是英文也占一个字符呀。如果我的公告出现有book这样的英文不就会导致判断异常 ?两个英文才代替得了一个中文的位置,有什么办法可以解决这个问题吗 ? 谢谢各位了!
最佳答案
1.string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )这个方法可以按指定编码截取字符串,只要$encoding指定为gbk即可
2.自己写循环处理
 function chinesesubstr($str,$start,$len) { 
    $strlen=$start+$len; 
    for($i=0;$i<$strlen;$i++) { 
        if(ord(substr($str,$i,1))>0xa0) { 
            $tmpstr.=substr($str,$i,2); 
            $i++; 
         } 
  else 
            $tmpstr.=substr($str,$i,1); 
    } 
    return $tmpstr; 
}
英文加1,汉字加2,只截取内容的指定长度,其它以...代替!
    不知你是否明白?


顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论