帝国CMS模板大全
www.admin99.cn
www.92cms.cn 帝国CMS模板下载站!,情怀,养站,二次开发!源码需求比较大的一站式会员下载,价更省!!!

9、PHP截取字符串长度

我们经常会遇到需要截取字符串(含中文汉字)长度的情况,比如标题显示不能超过多少字符,超出的长度用…表示,以下函数可以满足你的需求。

  1   /*  
  2  
  3    Utf-8、gb2312都支持的汉字截取函数 
   4  
  5    cut_str(字符串, 截取长度, 开始长度, 编码); 
   6  
  7    编码默认为 utf-8 
   8  
  9    开始长度默认为 0 
  10  
 11   */  
 12  
 13   function  cutStr( $string ,  $sublen ,  $start  = 0,  $code  = 'UTF-8' ){ 
  14  
 15       if ( $code  == 'UTF-8' ){ 
  16  
 17           $pa  = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/" ; 
  18  
 19           preg_match_all ( $pa ,  $string ,  $t_string  ); 
  20  
 21   
 22  
 23           if ( count ( $t_string [0]) -  $start  >  $sublen )  return   join ('',  array_slice 
 24  ( $t_string [0],  $start ,  $sublen ))."..." ; 
  25  
 26           return   join ('',  array_slice ( $t_string [0],  $start ,  $sublen  )); 
  27  
 28      } else  { 
  29  
 30           $start  =  $start *2 ; 
  31  
 32           $sublen  =  $sublen *2 ; 
  33  
 34           $strlen  =  strlen ( $string  ); 
  35  
 36           $tmpstr  = '' ; 
  37  
 38   
 39  
 40           for ( $i =0;  $i < $strlen ;  $i ++ ){ 
  41  
 42               if ( $i >= $start  &&  $i <( $start + $sublen  )){ 
  43  
 44                   if ( ord ( substr ( $string ,  $i , 1))>129 ){ 
  45  
 46                       $tmpstr .=  substr ( $string ,  $i , 2 ); 
  47  
 48                  } else  { 
  49  
 50                       $tmpstr .=  substr ( $string ,  $i , 1 ); 
  51  
 52                   } 
  53  
 54               } 
  55  
 56               if ( ord ( substr ( $string ,  $i , 1))>129)  $i ++ ; 
  57  
 58           } 
  59  
 60           if ( strlen ( $tmpstr )< $strlen  )  $tmpstr .= "..." ; 
  61  
 62           return   $tmpstr  ; 
  63  
 64       } 
  65  
 66   }
  67  
 68   //  使用方法如下 
 69  
 70   $str  = "jQuery插件实现的加载图片和页面效果" ; 
  71  
 72   echo  cutStr( $str ,16);

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《9、PHP截取字符串长度》
文章链接:https://www.admin99.cn/8005
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
QQ站长交流群:953950264

登录

找回密码

注册