php截取指定長度中文字符的技巧是什么 php截取指定長度中文字符的技巧是

php截取指定長度中文字符的技巧是什么 php截取指定長度中文字符的技巧是

日期:2023-03-08 16:49:11    编辑:网络投稿    来源:互联网

php截取指定長度中文字符的技巧  在PHP程序開發中,經常會執行字符串的截取操作,那么php如何截取指定長度中文字符呢?來看看小編的分享吧!  但字符串只要出現中文字符,就有

php截取指定長度中文字符的技巧

  在PHP程序開發中,經常會執行字符串的截取操作,那么php如何截取指定長度中文字符呢?來看看小編的分享吧!

  但字符串只要出現中文字符,就有可能導致PHP substr 中文亂碼,因為中文UTF-8編碼,每個漢字占3字節,而GB2312占2字節,英文占1字節,截取位數不準確,substr()硬生生地將一個中文字符“鋸”成兩半,造成斷開的字符會把其后的..拉過來一起做一個字,所以出現了PHP substr中文亂碼。下面說一下解決辦法:

  使用mb_stren()函數:

  [php] view plain copymixed mb_strlen ( string $str[, string $encoding = mb_internal_encoding() ] )

  第一個參數為要處理的的字符串 第二個參數為編碼方式 忽略則使用默認編碼

  根據此函數來截取中文字符串,自定義函數為:

  [php] view plain copy/**

  * @param string $string 要截取的字符串

  * @param int $len 要截取的長度

  * @param string $tail 截取后結尾替換的字符換

  * @return string $string 返回截取后的字符串

  */

  function changeStr($string,$len,$tail){

  if(mb_strlen($string)>$len){

  $tmp = mb_substr($string,0,$len,'utf8');

  return $tmp.$tail;

  }else{

  return $arg;

  }

  }

  測試:

  [php] view plain copy

  header('Content-type:text/html;charset=utf8');

  $string = "大眾創業、萬眾創新成為全社會的共識。開展股權眾籌融資試點”被正式寫入政府工作報告,

  即將修訂的《證券法》也將賦予股權眾籌一個法律地位。當今的`中國是創業的熱土,也是股權眾籌最適宜生

  長的土壤,支持一大批創新創業公司因“眾籌”而成功是眾籌行業的歷史使命。中關村作為新經濟的風向標和

  策源地,率先誕生了中國最有影響力的一批股權眾籌平臺,推動股權眾籌行業健康發展,為“大眾創業、萬眾

  創新”營造良好發展環境成為中關村的歷史使命和必然選擇。";

  echo changeStr($string,10,'.....');

  /**

  * @param string $string 要截取的字符串

  * @param int $len 要截取的長度

  * @param string $tail 截取后結尾替換的字符換

  * @return string $string 返回截取后的字符串

  */

  function changeStr($string,$len,$tail){

  if(mb_strlen($string)>$len){

  $tmp = mb_substr($string,0,$len,'utf8');

  return $tmp.$tail;

  }else{

  return $arg;

  }

  }

  ?>

  輸出:

  大眾創業、萬眾創新.....

【php截取指定長度中文字符的技巧】相關文章:

PHP如何獲取中文字符串長度10-29

PHP的字符串函數08-25

PHP的中文文字處理技巧09-05

php的字符串常用函數09-21

php字符轉URL地址的函數08-31

php字符串分割的詳解06-08

PHP中文文字處理技巧10-12

獲取php數組長度函數的方法08-17

解決PHP中文亂碼問題09-23