国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php 截取中文字符串實現(xiàn)程序

2024-09-04 11:48:33
字體:
供稿:網(wǎng)友

在php中我們截取字符串可以使用自帶的函數(shù),但是自帶的函數(shù)不支持中文截取,如果需要截取中文字符串我們需要現(xiàn)做一些操作,下面我來給各位朋友介紹.

針對GB2312的代碼,代碼如下:

  1. //$str是要截取的字符串 
  2. //$start是要截取的字符的開始位置 
  3. //$len是指要截取的字符長度 
  4. function sub_str($str$start$len) { 
  5.         $tmpstr = ""
  6.         $strlen = $start + $len
  7.         for($i = 0; $i < $strlen$i++) { 
  8.             if(ord(substr($str$i, 1)) > 0xa0) { 
  9.                 $tmpstr .= substr($str$i, 2); 
  10.                 $i++; 
  11.             } else 
  12.                 $tmpstr .= substr($str$i, 1); 
  13.         } 
  14.         return $tmpstr."..."

針對uft8,代碼如下:

  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. ?> 

上面的方法肯定不實用,因為我希望可以自動識別支持任何編碼的字符串截取,后來找到一個還算可以的分享給各位朋友,代碼如下:

  1. <?php 
  2. /** 
  3.  * @package     BugFree 
  4.  * @version     $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $ 
  5.  * 
  6.  * 
  7.  * Return part of a string(Enhance the function substr()) 
  8.  * 
  9.  * @author                  Chunsheng Wang <wwccss@263.net> 
  10.  * @param string  $String  the string to cut. 
  11.  * @param int     $Length  the length of returned string. 
  12.  * @param booble  $Append  whether append "...": false|true 
  13.  * @return string           the cutted string. 
  14.  */ 
  15. function sysSubStr($String,$Length,$Append = false) 
  16.     if (strlen($String) < = $Length ) 
  17.     { 
  18.         return $String
  19.     } 
  20.     else 
  21.     { 
  22.         $I = 0; 
  23.         while ($I < $Length
  24.         { 
  25.             $StringTMP = substr($String,$I,1); 
  26.             if ( ord($StringTMP) >=224 ) 
  27.             { 
  28.                 $StringTMP = substr($String,$I,3); 
  29.                 $I = $I + 3; 
  30.             } 
  31.             elseif( ord($StringTMP) >=192 ) 
  32.             { 
  33.                 $StringTMP = substr($String,$I,2); 
  34.                 $I = $I + 2; 
  35.             } 
  36.             else 
  37.             { 
  38.                 $I = $I + 1; 
  39.             } 
  40.             $StringLast[] = $StringTMP
  41.         } 
  42.         $StringLast = implode("",$StringLast); 
  43.         if($Append
  44.         { 
  45.             $StringLast .= "..."
  46.         } 
  47.         return $StringLast
  48.     } 
  49. $String = "www.survivalescaperooms.com 走在中國自動化測試的前沿"
  50. $Length = "18"
  51. $Append = false; 
  52. echo sysSubStr($String,$Length,$Append); 
  53. ?> 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 大理市| 富宁县| 偏关县| 武清区| 宜黄县| 汝南县| 化州市| 西乌珠穆沁旗| 安国市| 新竹县| 大理市| 柳林县| 来宾市| 博罗县| 五原县| 方山县| 花莲县| 介休市| 民丰县| 师宗县| 秭归县| 安吉县| 井研县| 东乌珠穆沁旗| 宁安市| 左云县| 城市| 平江县| 白山市| 恩平市| 历史| 蒲城县| 区。| 寻甸| 昭苏县| 喀什市| 鱼台县| 永靖县| 抚州市| 都江堰市| 郓城县|