求助php判断字符长度的问题
大家好!有个问题想请教一下,就是我在php的页面某个新闻的板块。我想通过判断长度如果超过某个值的时候,就用...来填充超过长度范围的值。我知道有个函数可以判断的,就是通过...
大家好 !有个问题想请教一下 ,就是我在php的页面某个新闻的板块 。我想通过判断长度如果超过某个值的时候,就用...来填充超过长度范围的值。我知道有个函数可以判断的,就是通过strlen()。但是这样好像不行的,中文算一个字符固然没错;但是英文也占一个字符呀。如果我的公告出现有book这样的英文不就会导致判断异常 ?两个英文才代替得了一个中文的位置,有什么办法可以解决这个问题吗 ? 谢谢各位了!
展开
2个回答
展开全部
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,只截取内容的指定长度,其它以...代替!
不知你是否明白?
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,只截取内容的指定长度,其它以...代替!
不知你是否明白?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询