欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP針對(duì)中英文混合字符串長度判斷及截取方法示例

 更新時(shí)間:2017年03月31日 11:59:38   作者:raku  
這篇文章主要介紹了PHP針對(duì)中英文混合字符串長度判斷及截取方法,結(jié)合實(shí)例形式分析了php中英文字符串的遍歷、轉(zhuǎn)換、截取、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下

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

/**
 * 
 * 中英混合字符串長度判斷 
 * @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 ); //字符串的字節(jié)數(shù) 
  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 ); //根據(jù)UTF-8編碼規(guī)范,將3個(gè)連續(xù)的字符計(jì)為單個(gè)字符   
      $i = $i + 3; //實(shí)際Byte計(jì)為3
      $n ++; //字串長度計(jì)1
    } elseif ($ascnum >= 192) //如果ASCII位高與192,
    {
      $returnstr = $returnstr . substr ( $sourcestr, $i, 2 ); //根據(jù)UTF-8編碼規(guī)范,將2個(gè)連續(xù)的字符計(jì)為單個(gè)字符 
      $i = $i + 2; //實(shí)際Byte計(jì)為2
      $n ++; //字串長度計(jì)1
    } elseif ($ascnum >= 65 && $ascnum <= 90) //如果是大寫字母,
    {
      $returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
      $i = $i + 1; //實(shí)際的Byte數(shù)仍計(jì)1個(gè)
      $n ++; //但考慮整體美觀,大寫字母計(jì)成一個(gè)高位字符
    } else //其他情況下,包括小寫字母和半角標(biāo)點(diǎn)符號(hào),
    {
      $returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
      $i = $i + 1; //實(shí)際的Byte數(shù)計(jì)1個(gè)
      $n = $n + 0.5; //小寫字母和半角標(biāo)點(diǎn)等與半個(gè)高位字符寬...
    }
  }
  if ($str_length > $cutlength) {
    $returnstr = $returnstr . "..."; //超過長度時(shí)在尾處加上省略號(hào)
  }
  return $returnstr;
}

PS:這里再為大家推薦幾款在線字符統(tǒng)計(jì)工具供大家參考:

在線字?jǐn)?shù)統(tǒng)計(jì)工具:
http://tools.jb51.net/code/zishutongji

在線字符統(tǒng)計(jì)與編輯工具:
http://tools.jb51.net/code/char_tongji

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 延長phpmyadmin登錄時(shí)間的方法

    延長phpmyadmin登錄時(shí)間的方法

    新安裝的phpmyadmin默認(rèn)是cookie模式,如果閑置十幾分鐘不操作的話,就會(huì)要求重新登錄。
    2011-02-02
  • PHP獲取當(dāng)前文件的父目錄方法匯總

    PHP獲取當(dāng)前文件的父目錄方法匯總

    本文給大家匯總介紹了使用PHP獲取當(dāng)前文件所在目錄的父目錄的路徑的2種方法,并附上php獲取路徑和目錄的相關(guān)函數(shù),有需要的小伙伴可以參考下
    2016-07-07
  • 逆序二維數(shù)組插入一元素的php代碼

    逆序二維數(shù)組插入一元素的php代碼

    逆序二維數(shù)組插入一元素的php代碼,需要的朋友可以參考下
    2012-06-06
  • 詳解PHP中數(shù)組函數(shù)的知識(shí)點(diǎn)

    詳解PHP中數(shù)組函數(shù)的知識(shí)點(diǎn)

    PHP 的數(shù)組是一種很強(qiáng)大的數(shù)據(jù)類型,與此同時(shí) PHP 內(nèi)置了一系列與數(shù)組相關(guān)的函數(shù)可以很輕易的實(shí)現(xiàn)日常開發(fā)的功能。所以本文便總結(jié)了一些在常見場景中利用 PHP 內(nèi)置函數(shù)的實(shí)現(xiàn)方法,希望對(duì)你有所幫助
    2022-11-11
  • PHP實(shí)現(xiàn)排序堆排序(Heap Sort)算法

    PHP實(shí)現(xiàn)排序堆排序(Heap Sort)算法

    這篇文章主要為大家詳細(xì)介紹了PHP實(shí)現(xiàn)排序堆排序(Heap Sort)算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • PHP 編程請(qǐng)選擇正確的文本編輯軟件

    PHP 編程請(qǐng)選擇正確的文本編輯軟件

    PHP 編程請(qǐng)選擇正確的文本編輯軟件...
    2006-12-12
  • php字符串操作常見問題小結(jié)

    php字符串操作常見問題小結(jié)

    這篇文章主要介紹了php字符串操作常見問題,結(jié)合實(shí)例形式分析了php針對(duì)json的操作及字符串轉(zhuǎn)換問題,需要的朋友可以參考下
    2016-10-10
  • PHP isset()函數(shù)使用方法詳解

    PHP isset()函數(shù)使用方法詳解

    isset()函數(shù)是PHP中的內(nèi)置函數(shù),用于確定是否聲明了變量且其值不等于NULL,本文將詳細(xì)給大家介紹PHP isset()函數(shù)的具體使用方法,有感興趣的同學(xué)可以跟著小編一起來學(xué)習(xí)
    2023-07-07
  • PHP遍歷數(shù)組的幾種方法

    PHP遍歷數(shù)組的幾種方法

    這三種方法中效率最高的是使用foreach語句遍歷數(shù)組。從PHP4開始就引入了foreach結(jié)構(gòu),是PHP中專門為遍歷數(shù)組而設(shè)計(jì)的語句,推薦大家使用。先分別介紹這幾種方法
    2012-03-03
  • php的4種常用運(yùn)行方式詳解

    php的4種常用運(yùn)行方式詳解

    這篇文章主要介紹了php的4種常用運(yùn)行方式,CGI、FastCGI、APACHE2HANDLER和CLI,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評(píng)論