Chinaunix首页 | 论坛 | 博客
  • 博客访问: 207727
  • 博文数量: 26
  • 博客积分: 2060
  • 博客等级: 大尉
  • 技术积分: 394
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-02 21:43
文章分类

全部博文(26)

文章存档

2011年(1)

2010年(2)

2009年(23)

我的朋友

分类:

2009-06-04 10:55:46

PHP默认的substr可以截取字符串,但是其本意基于英文字符的,如果汉字,很可能因为汉字的双字节问题截取出乱码来,因此如果是汉字的字符串,可以使用如下函数进行截取:
//判断字符串长度,默认的strlen不区分中英文,下面的函数区分的中英文,能做准确判断
function strlen_utf8 ($str)
{
   $i = 0;
   $count = 0;
   $len = strlen ($str);
   while ($i < $len)
   {
   $chr = ord ($str[$i]);
   $count++;
   $i++;
   if ($i >= $len)
       break;
   if ($chr & 0x80)
   {
       $chr <<= 1;
       while ($chr & 0x80)
       {
       $i++;
       $chr <<= 1;
       }
   }
   }
   return $count;
}

//判断字符串长度,并根据参数进行截取
function func_substr($str,$len){
 $res="";
 if(strlen_utf8($str)>$len){//如果字符串长度超过$len的长度,则截取并且加…
  $res=mb_substr($str,0,$len,'utf-8').'…';
 }
 else{
  $res=$str;
 }
 return $res;
}
?>
 
调用示例:
echo func_substr('欢迎使用字符串截取函数',6);
 
?>
阅读(1241) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~