亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

多個PHP中文字符串截取函數

2024-09-04 11:49:53
字體:
來源:轉載
供稿:網友

字符串截取是一個非常常見的編程任務,而往往帶中文的字符串截取會經常用到。雖然不難,但是自己寫函數實現又耗費時間,這里介紹一個比較好用的字符串截取函數,能夠勝任基本的需求了,代碼如下:

  1. <?php 
  2. function sysSubStr($string,$length,$append = false)  
  3. {  
  4.     if(strlen($string) <= $length )  
  5.     {  
  6.         return $string;  
  7.     }  
  8.     else  
  9.     {  
  10.         $i = 0;  
  11.         while ($i < $length)  
  12.         {  
  13.             $stringTMP = substr($string,$i,1);  
  14.             if ( ord($stringTMP) >=224 )  
  15.             {  
  16.                 $stringTMP = substr($string,$i,3);  
  17.                 $i = $i + 3;  
  18.             }  
  19.             elseif( ord($stringTMP) >=192 )  
  20.             {  
  21.                 $stringTMP = substr($string,$i,2);  
  22.                 $i = $i + 2;  
  23.             }  
  24.             else  
  25.             {  
  26.                 $i = $i + 1;  
  27.             }  
  28.             $stringLast[] = $stringTMP;  
  29.         }  
  30.         $stringLast = implode("",$stringLast);  
  31.         if($append)  
  32.         {  
  33.             $stringLast .= "...";  
  34.         }  
  35.         return $stringLast;  
  36.     }  
  37. }  
  38. //Vevb.com 
  39. $string = "簡明現代魔法 —— 專注于互聯網主流的各種技術";  
  40. $length = "27";  
  41. $append = true;  
  42. echo sysSubStr($string,$length,$append);  
  43. // 輸出  
  44. // 簡明現代魔法 —— 專... 
  45. ?> 

截取GB2312中文字符串:

  1. <?php 
  2. //截取中文字符串 
  3. function mysubstr($str$start$len) { 
  4.     $tmpstr = ""
  5.     $strlen = $start + $len
  6.     for($i = 0; $i < $strlen$i++) { 
  7.         if(ord(substr($str$i, 1)) > 0xa0) { 
  8.             $tmpstr .= substr($str$i, 2); 
  9.             $i++; 
  10.         } else 
  11.             $tmpstr .= substr($str$i, 1); 
  12.     } 
  13.     return $tmpstr
  14. ?> 

截取utf8編碼的多字節字符串:

  1. <?php 
  2. //截取utf8字符串 
  3. function utf8Substr($str$from$len
  4.     return preg_replace('#^(?:[/x00-/x7F]|[/xC0-/xFF][/x80-/xBF]+){0,'.$from.'}'
  5.                        '((?:[/x00-/x7F]|[/xC0-/xFF][/x80-/xBF]+){0,'.$len.'}).*#s'
  6.                        '$1',$str); 
  7. ?> 

UTF-8、GB2312都支持的漢字截取函數:

  1. <?php 
  2. /*  
  3. Utf-8、gb2312都支持的漢字截取函數  
  4. cut_str(字符串, 截取長度, 開始長度, 編碼);  
  5. 編碼默認為 utf-8  
  6. 開始長度默認為 0  
  7. */  
  8.  
  9. function cut_str($string$sublen$start = 0, $code = 'UTF-8')  
  10. {  
  11.     if($code == 'UTF-8')  
  12.     {  
  13.         $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]/";  
  14.         preg_match_all($pa$string$t_string);  
  15.  
  16.         if(count($t_string[0]) - $start > $sublenreturn join(''array_slice($t_string[0], $start$sublen))."...";  
  17.         return join(''array_slice($t_string[0], $start$sublen));  
  18.     }  
  19.     else  
  20.     {  
  21.         $start = $start*2;  
  22.         $sublen = $sublen*2;  
  23.         $strlen = strlen($string);  
  24.         $tmpstr = '';  
  25.  
  26.         for($i=0; $i$strlen$i++)  
  27.         {  
  28.             if($i>=$start && $i< ($start+$sublen))  
  29.             {  
  30.                 if(ord(substr($string$i, 1))>129)  
  31.                 {  
  32.                     $tmpstr.= substr($string$i, 2);  
  33.                 }  
  34.                 else  
  35.                 {  
  36.                     $tmpstr.= substr($string$i, 1);  
  37.                 }  
  38.             }  
  39.             if(ord(substr($string$i, 1))>129) $i++;  
  40.         }  
  41.         if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";  
  42.         return $tmpstr;  
  43.     }  
  44. }  
  45.  
  46. $str = "abcd需要截取的字符串";  
  47. echo cut_str($str, 8, 0, 'gb2312');  
  48. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
夜夜嗨av一区二区三区免费区| 欧美激情视频播放| 国产女人18毛片水18精品| 中文字幕精品www乱入免费视频| 国产成人精品日本亚洲专区61| 国产精品视频专区| 在线观看亚洲区| 综合136福利视频在线| 日韩精品视频在线播放| 国产亚洲福利一区| 国产69精品久久久| 国产国语刺激对白av不卡| 亚洲在线视频观看| 国产在线拍偷自揄拍精品| 97**国产露脸精品国产| 亚洲无限av看| 亚洲欧美日韩爽爽影院| 中文字幕亚洲综合久久筱田步美| 亚洲欧洲黄色网| 97福利一区二区| 国产精品视频一区二区三区四| 亚洲深夜福利网站| 91欧美精品午夜性色福利在线| 欧美在线免费视频| 国语自产精品视频在线看| 性欧美办公室18xxxxhd| 国产欧美最新羞羞视频在线观看| 日韩欧美成人免费视频| 亚洲电影免费观看| 国产精品一区二区三区成人| 日韩精品免费观看| 精品久久久一区二区| 欧美中文字幕在线播放| 美日韩精品免费视频| 国产伦精品一区二区三区精品视频| 丁香五六月婷婷久久激情| 免费成人高清视频| 久久99热精品| 国产精品黄色影片导航在线观看| 精品国产拍在线观看| 久久久久久久久久av| 91亚洲精品久久久| 日韩电视剧在线观看免费网站| 45www国产精品网站| 成人精品一区二区三区电影黑人| www.欧美视频| 亚洲午夜女主播在线直播| 青青草原成人在线视频| 91中文在线观看| 亚洲国产成人91精品| 国产欧美日韩精品在线观看| 亚洲在线视频福利| 成人黄色av播放免费| 成人伊人精品色xxxx视频| 日韩精品极品视频| 日韩女优人人人人射在线视频| 亚洲国产精久久久久久| 全色精品综合影院| 91精品国产91久久| 亚洲视频专区在线| 国产欧美日韩中文字幕在线| 亚洲国产成人精品电影| 国产成人精品在线视频| 欧美激情xxxxx| 欧美激情一区二区三区成人| 中文字幕日韩精品在线观看| 岛国精品视频在线播放| 国产精品久久久999| 日韩欧美中文第一页| 日韩成人av网| 亚洲一级一级97网| 一夜七次郎国产精品亚洲| 欧美激情视频在线免费观看 欧美视频免费一| 97在线视频免费播放| 亚洲影视中文字幕| 一区二区三区国产视频| 亚洲欧美国产精品专区久久| 色妞欧美日韩在线| 亚洲天堂影视av| 久久精品国产亚洲精品2020| 亚洲欧美日本精品| 欧美肥婆姓交大片| 欧美性生交xxxxxdddd| 精品福利视频导航| 欧美视频中文字幕在线| 亚洲国产欧美在线成人app| 亚洲成人精品视频在线观看| 精品国产一区av| 亚洲天堂开心观看| 国产视频999| 欧美成人免费小视频| 色综合天天综合网国产成人网| 国产精品旅馆在线| 日本精品久久中文字幕佐佐木| 欧美性生交大片免网| 夜夜嗨av色综合久久久综合网| 欧美激情18p| 欧美精品videosex牲欧美| 国产精品一二三视频| 国产第一区电影| 一本色道久久88精品综合| 欧美夫妻性视频| 夜夜嗨av色一区二区不卡| 亚洲人成伊人成综合网久久久| 国产精品成av人在线视午夜片| 久久露脸国产精品| 米奇精品一区二区三区在线观看| 亚洲欧美日本精品| 国产欧美va欧美va香蕉在| 亚洲精品av在线| 久久久综合av| 国产精品黄色av| 国产精品欧美激情| 国产亚洲xxx| 日韩高清中文字幕| 亚洲一级免费视频| 欧美又大粗又爽又黄大片视频| 26uuu另类亚洲欧美日本一| 欧美午夜xxx| 亚洲欧洲一区二区三区久久| 久久视频中文字幕| 国产欧美在线看| 色播久久人人爽人人爽人人片视av| 亚洲第一精品夜夜躁人人躁| 欧美日韩福利电影| 成人网在线免费看| 亚洲精品永久免费| 亚洲精品欧美极品| 羞羞色国产精品| 亚洲香蕉伊综合在人在线视看| 成人久久18免费网站图片| 亚洲精品www久久久| 97av在线视频免费播放| 成人深夜直播免费观看| 国产不卡精品视男人的天堂| 亚洲欧美日韩精品久久奇米色影视| 欧美激情国产日韩精品一区18| 国产成人精品免高潮在线观看| 国产精品免费久久久久久| 午夜精品久久久久久久99热浪潮| 久久精品亚洲94久久精品| 国产精品99久久久久久久久久久久| 欧美激情欧美激情在线五月| 精品成人av一区| 久久人人97超碰精品888| 欧美视频中文在线看| 最近2019中文字幕mv免费看| 久久精视频免费在线久久完整在线看| 国产亚洲欧洲高清| 国产精品av网站| 亚洲国产精品成人精品| 久久久国产精品免费| 久久精品久久久久久国产 免费| 欧美激情第1页| 日韩av色在线| 久久久av亚洲男天堂| 国产精品久久久999| 久久视频这里只有精品| 欧美午夜片在线免费观看| 国产美女精品视频| 国产午夜精品全部视频在线播放| 成人激情av在线| 欧美日韩在线视频观看| 色综合久久88色综合天天看泰|