PHP中处理截取汉字,出现乱码问题的2个类

  1. function  msubstr($str,$start,$len)  {    
  2.        $strlen=$start+$len;    
  3.        for($i=0;$i<$strlen;$i++)  {    
  4.                if(ord(substr($str,$i,1))>0xa0)  {    
  5.                        $tmpstr.=substr($str,$i,2);    
  6.                        $i++;    
  7.                }  else    
  8.                        $tmpstr.=substr($str,$i,1);    
  9.        }    
  10.        return  $tmpstr;    
  11. }  
  12.  
  13. -------------------------------------  
  14. <?PHP  
  15. $str="这个字符好长呀,^_^";  
  16. $Short_Str=showShort($str,4);//截取前面4个汉字,结果为:这个字符...  
  17. Echo  "$Short_Str";  
  18. Function  csubstr($str,$start,$len)    
  19. {    
  20. $strlen=strlen($str);    
  21. $clen=0;    
  22. for($i=0;$i<$strlen;$i++,$clen++)    
  23. {    
  24. if  ($clen>=$start+$len)    
  25. break;    
  26. if(ord(substr($str,$i,1))>0xa0)    
  27. {    
  28. if  ($clen>=$start)    
  29. $tmpstr.=substr($str,$i,2);    
  30. $i++;    
  31. }    
  32. else    
  33. {    
  34. if  ($clen>=$start)    
  35. $tmpstr.=substr($str,$i,1);    
  36. }    
  37. }    
  38.  
  39. return  $tmpstr;    
  40. }    
  41. Function  showShort($str,$len)    
  42. {    
  43. $tempstr  =  csubstr($str,0,$len);    
  44. if  ($str<>$tempstr)    
  45. $tempstr  .=  "...";  //要以什么结尾,修改这里就可以.  
  46.  
  47. return  $tempstr;    
  48. }    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值