成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? PHP針對中英文混合字符串長度判斷及截取方法示例
全站頭部文字 我要出現在這里
PHP針對中英文混合字符串長度判斷及截取方法示例 714 2024-01-10   

本文實例講述了PHP針對中英文混合字符串長度判斷及截取方法。分享給大家供大家參考,具體如下:

/**
 * 
 * 中英混合字符串長度判斷 
 * @param unknown_type $str
 * @param unknown_type $charset
 */
function strLength($str, $charset = 'utf-8') {
  if ($charset == 'utf-8')
    $str = iconv ( 'utf-8', 'gb2312', $str );
  $num = strlen ( $str );
  $cnNum = 0;
  for($i = 0; $i < $num; $i ++) {
    if (ord ( substr ( $str, $i + 1, 1 ) ) > 127) {
      $cnNum ++;
      $i ++;
    }
  }
  $enNum = $num - ($cnNum * 2);
  $number = ($enNum / 2) + $cnNum;
  return ceil ( $number );
}
/**
 * 
 * 中英混合的字符串截取
 * @param unknown_type $sourcestr
 * @param unknown_type $cutlength
 */
function cut_str($sourcestr, $cutlength) {
  $returnstr = '';
  $i = 0;
  $n = 0;
  $str_length = strlen ( $sourcestr ); //字符串的字節數 
  while ( ($n < $cutlength) and ($i <= $str_length) ) {
    $temp_str = substr ( $sourcestr, $i, 1 );
    $ascnum = Ord ( $temp_str ); //得到字符串中第$i位字符的ascii碼 
    if ($ascnum >= 224) //如果ASCII位高與224,
    {
      $returnstr = $returnstr . substr ( $sourcestr, $i, 3 ); //根據UTF-8編碼規范,將3個連續的字符計為單個字符   
      $i = $i + 3; //實際Byte計為3
      $n ++; //字串長度計1
    } elseif ($ascnum >= 192) //如果ASCII位高與192,
    {
      $returnstr = $returnstr . substr ( $sourcestr, $i, 2 ); //根據UTF-8編碼規范,將2個連續的字符計為單個字符 
      $i = $i + 2; //實際Byte計為2
      $n ++; //字串長度計1
    } elseif ($ascnum >= 65 && $ascnum <= 90) //如果是大寫字母,
    {
      $returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
      $i = $i + 1; //實際的Byte數仍計1個
      $n ++; //但考慮整體美觀,大寫字母計成一個高位字符
    } else //其他情況下,包括小寫字母和半角標點符號,
    {
      $returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
      $i = $i + 1; //實際的Byte數計1個
      $n = $n + 0.5; //小寫字母和半角標點等與半個高位字符寬...
    }
  }
  if ($str_length > $cutlength) {
    $returnstr = $returnstr . "..."; //超過長度時在尾處加上省略號
  }
  return $returnstr;
}

PS:這里再為大家推薦幾款在線字符統計工具供大家參考:

在線字數統計工具:
http://tools.gimoo.net/code/zishutongji

在線字符統計與編輯工具:
http://tools.gimoo.net/code/char_tongji

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php面向對象程序設計入門教程》、《PHP網絡編程技巧總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。



主站蜘蛛池模板: 最后的朋友| 一年级歇后语下册| 5.25心理健康日主题班会ppt| 国产破处视频在线播放| 张小波简历及个人资料简介| 裸体摸特| 抖音网页抖音| 九九九九九九九伊人| 徐若| 绿巨人2| 唐人街探案网剧1| cctv16直播| a friend in need中文翻译| 《ulises》完整版在线观看| 颂赞诗歌| 青春没有遗憾才完美辩论资料| 集体生活成就我教学设计| 逆光飞翔 电影| 在线观看xxxx| 大尾鲈鳗| 一张图看懂军衔| 田中敦子| 老板娘2无间潜行| 暴露视频| 玉匣记白话全书| 郑荣植个人资料| 色在线看| 小镇姑娘电影| 广濑大介| 香港九龙图库精选资料| 在线观看高清电影| 嘉兴19| 快乐到底| 大众故事1974意大利| 电影井冈山| 安姨电影| 艾娜| 出轨的女人电影| 小班健康活动教案40篇| 任港秀| 同根生|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103